0
我确定我只是在搜索错误的查询,所以如果有的话,请随时指出我的重复。在同一张表上执行联合
我有一张桌子;
项目
idProject |名称| Number |状态| DateRaised
我想什么做的,是能够看到的募集项目的数量,赢了,输了,等
我以为是我能与工会做到这一点,像这样;
SELECT
CONVERT(nvarchar, DATEPART(YEAR, DateRaised),107) AS [Year],
COUNT(*) AS [Tenders Received],
'' AS [Tenders Won],
NULL AS [Tenders Lost],
NULL AS [Tenders Pending],
FROM Projects P
GROUP BY DATEPART(YEAR, DateRaised)
UNION
SELECT
CONVERT(nvarchar, DATEPART(YEAR, DateRaised),107) AS [Year],
'' AS [Tenders Received],
COUNT(*) AS [Tenders Won],
NULL AS [Tenders Lost],
NULL AS [Tenders Pending],
FROM Projects P
WHERE P.ProjectStatus = 2
GROUP BY DATEPART(YEAR, DateRaised)
ORDER BY [YEAR] DESC
虽然我所得到的是一张两倍大小的桌子。
即
2015 | 10 | NULL | NULL | NULL
2015 | NULL | 5 | NULL | NULL
当我其实想是这样的;
2015 | 10 | 5 | NULL | NULL
也许联合是错误的构造。我现在实际上处于亏损状态。我相当肯定这是我以前做过的,但没有以前的代码工作,我现在完全失去了。
当然!我知道有一种更简单/更聪明的方式来完成任务!谢谢。 – Trent