C# 为什么我在SQL中获得同一区域的多条记录?

C# 为什么我在SQL中获得同一区域的多条记录?,c#,sql,sql-server,C#,Sql,Sql Server,这是程序的结果表 1 4 Uttar Pradesh 32 1 2 4 Uttar Pradesh 32 1 3 4 Uttar Pradesh 32 1 4 4 Uttar Pradesh 32 1 5 4 Uttar Pradesh 32 1 6 4 Uttar Pradesh 32 1 7 4 Uttar Pradesh 32 1 8 4 Uttar Pradesh 32 1 9

这是程序的结果表

1   4   Uttar Pradesh   32  1
2   4   Uttar Pradesh   32  1
3   4   Uttar Pradesh   32  1
4   4   Uttar Pradesh   32  1
5   4   Uttar Pradesh   32  1
6   4   Uttar Pradesh   32  1
7   4   Uttar Pradesh   32  1
8   4   Uttar Pradesh   32  1
9   4   Uttar Pradesh   32  1
10  4   Uttar Pradesh   32  1
11  4   Uttar Pradesh   32  1
12  4   Uttar Pradesh   32  1
13  29  Delhi   1   0
14  4   Uttar Pradesh   32  1
15  4   Uttar Pradesh   32  1
16  4   Uttar Pradesh   32  1
17  4   Uttar Pradesh   32  1
18  4   Uttar Pradesh   32  1
19  4   Uttar Pradesh   32  1
20  4   Uttar Pradesh   32  1
21  4   Uttar Pradesh   32  1
22  4   Uttar Pradesh   32  1
23  4   Uttar Pradesh   32  1
24  4   Uttar Pradesh   32  1
25  4   Uttar Pradesh   32  1
26  4   Uttar Pradesh   32  1
27  4   Uttar Pradesh   32  1
28  4   Uttar Pradesh   32  1
29  4   Uttar Pradesh   32  1
30  4   Uttar Pradesh   32  1
31  4   Uttar Pradesh   32  1
32  4   Uttar Pradesh   32  1
33  4   Uttar Pradesh   32  1
我只想显示一个区域中的一条记录

  This is my Stored Procedure,

ALTER PROC [dbo].[SUMMARY_DETAIL_USER]
--   SUMMARY_DETAIL_USER 1,10,'0',''
@PAGENO     INT, 
@PAGESIZE   INT, 
@NAME       VARCHAR(50),
@SEARCH_NAME   VARCHAR(50)

AS
DECLARE @ZONE_ID INT, @count_proj int,@count_prop int

create table #temp
    (
        SNO             INT IDENTITY,
        ZONE                INT,
        CITY_NAME           VARCHAR(50),
        COUNT_CITY_PROJECT  int ,
        PROPERTY_COUNT      int
    )
IF(@NAME = '0')
BEGIN



    INSERT INTO #temp(ZONE)
    SELECT PROJ.ZONE FROM PROJECTS PROJ LEFT JOIN PROPERTIES PROP ON PROJ.ZONE = PROP.ZONE_ID
    UPDATE #temp SET CITY_NAME=(SELECT Zone_Name FROM Zone_Master WHERE Zone_ID = #temp.ZONE)
    UPDATE #temp SET COUNT_CITY_PROJECT=(SELECT COUNT(*) FROM PROJECTS  WHERE Zone = #temp.ZONE)
    UPDATE #temp SET PROPERTY_COUNT=(SELECT COUNT(*) FROM PROPERTIES  WHERE ZONE_ID = #temp.ZONE)
    SELECT * FROM #TEMP 
    SELECT LAT, LONG,STATUS,PROJECT_NAME,PROJECT_CODE FROM PROJECTS WHERE ZONE IN (SELECT ZONE FROM #temp)
    --Select @count_proj    = ( SELECT COUNT(*) FROM PROJECTS WHERE 
        SELECT COUNT(*) FROM #TEMP

END

ELSE
BEGIN


    INSERT INTO #temp(ZONE)
    SELECT PROJ.ZONE FROM PROJECTS PROJ LEFT JOIN PROPERTIES PROP ON PROJ.ZONE = PROP.ZONE_ID 
    UPDATE #temp SET CITY_NAME=(SELECT Zone_Name FROM Zone_Master WHERE Zone_ID = #temp.ZONE)
    UPDATE #temp SET COUNT_CITY_PROJECT=(SELECT COUNT(*) FROM PROJECTS  WHERE Zone = #temp.ZONE)
    UPDATE #temp SET PROPERTY_COUNT=(SELECT COUNT(*) FROM PROPERTIES  WHERE ZONE_ID = #temp.ZONE)
    SELECT * FROM #TEMP WHERE CITY_NAME LIKE '%'+@NAME+'%'enter code here
    SELECT LAT, LONG,STATUS,PROJECT_NAME,PROJECT_CODE FROM PROJECTS WHERE ZONE IN (SELECT ZONE FROM #temp)`enter code here`
    SELECT COUNT(*) FROM #TEMP 
END

按项目区域使用分组

INSERT INTO #temp(ZONE)
SELECT PROJ.ZONE 
FROM PROJECTS PROJ 
LEFT JOIN PROPERTIES PROP ON PROJ.ZONE = PROP.ZONE_ID
GROUP BY PROJ.ZONE

您正在使用
属性加入
项目
。一个项目可能有多个属性。当您连接两个表时,结果集中满足连接条件的每一对都会显示一条记录,因此,如果您有一个具有10个属性的项目,该项目将重复10次。您需要使用
GROUP BY
子句,如@user3420762正确描述(+1)。

您是否尝试使用
distinct
?您使用属性加入项目。如果运行
SELECT PROJ.ZONE,PROP.*从PROJ.ZONE=PROP.ZONE_ID上的PROJ LEFT JOIN PROPERTIES中,您可以清楚地看到为什么会得到多行…使用distinct我得到了结果