这是程序
的表结果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
我想只显示One ZONE中的一条记录
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
答案 0 :(得分:1)
使用GROUP BY PROJ.ZONE
INSERT INTO #temp(ZONE)
SELECT PROJ.ZONE
FROM PROJECTS PROJ
LEFT JOIN PROPERTIES PROP ON PROJ.ZONE = PROP.ZONE_ID
GROUP BY PROJ.ZONE
答案 1 :(得分:0)
您正与PROJECTS
加入PROPERTIES
。一个项目可能有多个属性。当您JOIN
两个表时,对于满足结果集中的连接条件的每个对,将显示一条记录,因此,如果您有一个具有10个属性的项目,则该项目将重复十次。您需要使用GROUP BY
子句,例如正确描述的@ user3420762(+1)。