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我得到了结果