我有点新使用SQL。我有两个不同的查询,我需要添加或总结每个查询中列的值之一。提供示例代码和对结果的截图如下:如何求和2个不同的SQL查询的值?
WITH tbl AS
(
SELECT
y.Location,
IIF(Status = 'Completed', 1,0) as Completed,
IIF(Status = 'Pending', 1, 0) as Pending,
IIF(Status = 'Scheduled', 1, 0) as Scheduled,
IIF(Satisfied = 'Satisfied', 1 , 0) As Satisfied,
IIF(Attrition IN ('Red', 'Amber'),1,0) As Attrition
FROM
order x
LEFT JOIN
roster y ON x.customerID = y.cID
LEFT JOIN
tbl_calendar z ON (x.starttime between z.datestart AND z.dateend)
WHERE
y.LOCATION IS NOT NULL
AND y.Location <> 'Ireland'
AND z.month ='2'
AND z.week IN (SELECT * FROM dbo.split('1,2,3',','))
AND z.year = '2017'
)
SELECT
Location,
SUM(Completed) AS Completed,
SUM(Pending) AS Pending,
SUM(Scheduled) AS Scheduled,
SUM(Satisfied) as Satisfied,
SUM(Attrition) as Attrition
FROM
tbl
GROUP BY
Location
这里是第二个查询:
SELECT
y.location, count (*) as qc
FROM
customer_quality x
LEFT JOIN
roster y ON x.customerEID = y.cEID
LEFT JOIN
tbl_calendar z ON (x.DateTimeDelivered BETWEEN z.datestart AND z.dateend)
WHERE
y.location IS NOT NULL
AND x.status = '4'
AND z.month = '2'
AND z.week IN (SELECT * FROM dbo.split('1,2,3',','))
AND z.year = '2017'
GROUP BY
y.Location
什么我将需要do是将查询1中完成的全部订单的价值添加到我的查询2上的全部质量客户。
例如:
如果有208完整的客户在里斯本它会了其他4个优质客户,总应该是212
这将表明这样的:
Location Completed Pending Scheduled Satisfied Attrition
Kuala Lumpur 388 76 9 388 3
Lisbon 212 92 29 207 1
Manila 3535 97 167 662 24
Mumbai 538 50 54 2100 6
Warsaw 147 38 4 145 9
hi maderson,我试过这段代码。虽然它的工作。当某个位置的qc中没有数据时,让我们说kuala lumpur,它不会显示在表中 – kaede
然后您必须使用#TABLE1到#TABLE2连接。所有的地点都会在#TABLE2吗?如果是这样,请从中选择,然后加入#TABLE1。如果两个表可以有不同的位置,那么你将不得不使用另一个连接。 http://sqlmag.com/t-sql/t-sql-join-types – manderson