我无法获取我想要的记录。Sql如何结合一个记录中的两条记录,并从表中选择任意一个字段
SELECT
ROW_NUMBER() OVER(order by CAST(pr.District As INT) ASC) AS Row,
pr.District, pr.Project, pr.Tenure,
CASE pr.CompletionDate
WHEN NULL THEN 'UNKNOWN'
WHEN '' THEN 'UNKNOWN'
ELSE pr.CompletionDate
END AS COMPLETIONYEAR,
pr.AVG_PSF, pr.NoOfTransaction,
p.AVG_PSFRENTAL, p.RentalContract,
ROUND(((p.MAXRENT * 1200)/ pr.MAXPRICE),2,0) AS RENTAL_YIELD,
pr.Latitude, pr.Longitude,
CASE
WHEN ROUND(((p.MAXRENT * 1200)/ pr.MAXPRICE),2,0) < 3.0
THEN 'http://maps.google.com/mapfiles/ms/icons/blue.png'
WHEN ROUND(((p.MAXRENT * 1200)/ pr.MAXPRICE),2,0) > 3.0
AND ROUND(((p.MAXRENT * 1200)/ pr.MAXPRICE),2,0) < 4.0
THEN 'http://maps.google.com/mapfiles/ms/icons/green.png'
WHEN ROUND(((p.MAXRENT * 1200)/ pr.MAXPRICE),2,0) > 4.0
AND ROUND(((p.MAXRENT * 1200)/ pr.MAXPRICE),2,0) < 5.0
THEN 'http://maps.google.com/mapfiles/ms/icons/red.png'
ELSE 'http://maps.google.com/mapfiles/ms/icons/yellow.png'
END AS MARKER
FROM
(SELECT
District, Project,
MAX(Rent) AS MAXRENT,
ROUND(AVG((Rent/MaxArea)), +2, 0) AS AVG_PSFRENTAL,
COUNT(PrivateURARentalID) AS RentalContract
FROM
(SELECT
PrivateURARentalID, District, Project,
Rent, MaxArea, RentalDate
FROM
PrivateURARental
WHERE
RentalDate >= DATEADD(MONTH,DATEDIFF(MONTH, 0, GETDATE()) - 6, 0)
AND Project = 'QUEENS') [temp]
GROUP BY
Project, District
HAVING
COUNT(PrivateURARentalID) > 3) [p]
INNER JOIN
(SELECT
District, Project, Tenure, CompletionDate,
ROUND(AVG(psf),0,0) AS AVG_PSF,
MAX(price) AS MAXPRICE,
COUNT(psf) AS NoOfTransaction,
Latitude, Longitude
FROM
(SELECT
PrivateID, District, Project, Tenure,
CompletionDate, psf, Price,
Latitude, Longitude
FROM
Private
WHERE
[ContractDate] >= DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) - 6, 0)
AND Project = 'QUEENS') [temp]
GROUP BY
Project, District, Tenure, CompletionDate,
Latitude, Longitude
HAVING COUNT(PrivateID) > 3) pr ON p.Project = pr.Project
ORDER BY
CAST(pr.District As INT) ASC
现在从该查询我得到这样的结果:
1 3 QUEENS 99 Yrs From 16/02/1998 2002 1264 4 3.84 89 4.96 1.2925986 103.8072896 http://maps.google.com/mapfiles/ms/icons/red.png
2 3 QUEENS 99 Yrs From 16/02/1998 2002 1231 5 3.84 89 4.85 1.2936208 103.8063609 http://maps.google.com/mapfiles/ms/icons/red.png
为同一个项目我有两个records.I知道this.Its背后的原因是由于不同的经度和latitude.My问题我想从这两个位置选择经度中的任何一个。我还希望将这些记录记录在该项目的单个记录中。
请帮我这么做。
哪个RDBMS是这样的?请添加一个标签来指定您是使用'mysql','postgresql','sql-server','oracle'还是'db2' - 或者其他的东西。 –