blast_seconds
我在显示为正确值时遇到问题。在我的 select 子查询中,我需要blast_seconds
在我的主 Select 语句中同时显示 。执行查询时Year
,Month
、ScheduledSeconds
、TotalDays
和Totaltrucks
匹配,但blast_seconds
列在所有月份中显示相同的值。
这是我的查询:
SELECT DATEPART(YEAR, [Time]) AS [Year]
, DATEPART(MONTH, [Time]) AS [Month]
, SUM(Total) AS ScheduledSeconds
, COUNT(DISTINCT([Time])) AS TotalDays
, COUNT(DISTINCT(Equipment)) AS TotalTrucks
, (
SELECT SUM(CASE
WHEN dbo.reasons.status_id = '298'
THEN (dbo.by_operator_reasons.seconds)
ELSE 0
END)
FROM dbo.reasons
INNER JOIN by_operator_reasons
ON dbo.reasons.id = by_operator_reasons.reason_id
INNER JOIN equipment
ON by_operator_reasons.equipment_id = equipment.id
WHERE reasons.descrip LIKE 'Blast'
AND [Time] BETWEEN '2011-01-01' AND '2012-05-15'
AND by_operator_reasons.deleted_at IS NULL
AND equipment.type = 'Truck'
) AS Blast_Seconds
FROM by_equipment_times
WHERE [Time] BETWEEN '2011-01-01' and '2012-05-15'
AND equipment_type = 'Truck'
GROUP BY DATEPART(YEAR, [Time])
, DATEPART(MONTH, [Time])
ORDER BY DATEPART(YEAR, [Time]) ASC
, DATEPART(MONTH, [Time]) ASC
这是我当前的输出:
Year Month SchedSec Days TotalTrucks Blast_Seconds
---- ----- -------- ---- ----------- -------------
2011 1 51340448 31 20 4931156
2011 2 51979509 28 22 4931156
2011 3 58845600 31 22 4931156
2011 4 59121967 30 24 4931156
2011 5 66857271 31 25 4931156
2011 6 67306766 30 28 4931156
2011 7 76976358 31 30 4931156
2011 8 80393145 31 30 4931156
2011 9 75556005 30 30 4931156
2011 10 77741205 31 29 4931156
2011 11 75272400 30 29 4931156
2011 12 77691044 31 29 4931156
2012 1 77683752 31 29 4931156
2012 2 72662400 29 29 4931156
2012 3 77574538 31 29 4931156
2012 4 75172177 30 29 4931156
2012 5 37584000 15 29 4931156