以下代码工作正常(即没有错误)但它从子查询“e”加入所有内容。我希望它仅返回[Total Cancellations],而不是[Business Unit]
感谢帮助
SELECT *
FROM (SELECT c.*,b.[Total Bookings]
FROM (SELECT DISTINCT a.[business unit], count(a.[lookup_id]) as [Total Colleagues in DMS]
FROM EVERYTHING AS a
GROUP BY a.[business unit]
) AS c
LEFT JOIN (SELECT a.[business unit], count(a.[lookup_id]) as [Total Bookings]
FROM EVERYTHING AS a
WHERE a.[session_code]is not null
GROUP BY a.[business unit]
) AS b ON c.[business unit]=b.[business unit]
) AS d LEFT JOIN (SELECT a.[business unit], count(a.[lookup_id]) as [Total Cancellations]
FROM EVERYTHING AS a
WHERE a.[Has Booking been cancelled (Yes / No)]=1
group by a.[business unit]
) AS e ON d.[business unit]=e.[business unit];
enter code here
答案 0 :(得分:2)
试试这个,
SELECT d.[business unit]
,d.[Total Colleagues in DMS]
,d.[Total Bookings]
,e.[Total Cancellations]
--,f.columnname
FROM (
SELECT c.*
,b.[Total Bookings]
FROM (
SELECT DISTINCT [business unit]
,count([lookup_id]) AS [Total Colleagues in DMS]
FROM EVERYTHING
GROUP BY [business unit]
) c
LEFT JOIN (
SELECT [business unit]
,count([lookup_id]) AS [Total Bookings]
FROM EVERYTHING
WHERE [session_code] IS NOT NULL
GROUP BY [business unit]
) b ON c.[business unit] = b.[business unit]
) d
LEFT JOIN (
SELECT [business unit]
,count([lookup_id]) AS [Total Cancellations]
FROM EVERYTHING
WHERE [Has Booking been cancelled (Yes / No)] = 1
GROUP BY [business unit]
) e ON d.[business unit] = e.[business unit];
--LEFT JOIN (....) f ON ...