【发布时间】:2014-02-26 23:47:23
【问题描述】:
我有来自两个不同表的查询,它们按 yyyy-mm 对各自的数据(计数)进行分组。我想从两个查询中获取计数结果并将它们一起显示。以下是我的两个查询:
问题 1:
DECLARE @ThisMonth DATETIME
SET @ThisMonth = DATEADD(MONTH, DATEDIFF(MONTH, '19000101', GETDATE()), '19000101')
select cast(cast(TransportAppv6.dbo.T_FatigueNCRs.date as date) as varchar(7)) AS [MONTH], COUNT(TransportAppv6.dbo.T_FatigueNCRDetails.NCRID) AS [NCRs]
FROM TransportAppv6.dbo.T_FatigueNCRs
LEFT OUTER JOIN TransportAppv6.dbo.T_FatigueNCRDetails
ON T_FatigueNCRs.NCRID = TransportAppv6.dbo.T_FatigueNCRDetails.NCRID
LEFT OUTER JOIN TransportAppv6.dbo.T_Driver
ON TransportAppv6.dbo.T_FatigueNCRs.DriverID = TransportAppv6.dbo.T_Driver.ID
WHERE (TransportAppv6.dbo.T_FatigueNCRDetails.CancelYN = 0)
AND (TransportAppv6.dbo.T_Driver.FleetID = 2)
AND (TransportAppv6.dbo.T_Driver.Active = 1)
AND (TransportAppv6.dbo.T_FatigueNCRDetails.NCRTypeID = 1)
AND (TransportAppv6.dbo.T_FatigueNCRDetails.Details <> 'Driving Hours Breach As Per Breach Report')
AND (TransportAppv6.dbo.T_FatigueNCRs.Date >= DATEADD(MONTH, -6, @ThisMonth)
AND TransportAppv6.dbo.T_FatigueNCRs.Date < @ThisMonth)
GROUP BY cast(cast(TransportAppv6.dbo.T_FatigueNCRs.date as date) as varchar(7))
返回:
MONTH NCRs
2013-08 43
2013-09 34
2013-10 53
问题 2:
DECLARE @ThisMonth DATETIME
SET @ThisMonth = DATEADD(MONTH, DATEDIFF(MONTH, '19000101', GETDATE()), '19000101')
select cast(cast(landing.dbo.landing_runs.date as date) as varchar(7)) as [MONTH], COUNT(*) as [RUNS]
from landing.dbo.Landing_Runs
where (landing.dbo.Landing_Runs.date >= DATEADD(MONTH, -6, @ThisMonth)
AND landing.dbo.Landing_Runs.date < @ThisMonth)
GROUP BY cast(cast(landing.dbo.landing_runs.date as date) as varchar(7))
返回:
MONTH RUNS
2013-08 4626
2013-09 4042
2013-10 4481
我想做的是以某种方式加入这两个单独的查询,以便结果显示为:
MONTH RUNS NCRs
2013-08 4626 43
2013-09 4042 34
2013-10 4481 53
【问题讨论】:
标签: sql sql-server