У меня есть SQL-запрос, который я пытаюсь изменить, но я боюсь, что мой SQL-foo недостаточно хорош, чтобы понять это.Как присоединиться к отдельному второму запросу в SQL Server
Итак, у меня есть следующий запрос ..
DECLARE @OldestSettlementDate DATETIME;
DECLARE @NewestSettlementDate DATETIME;
SET @OldestSettlementDate = '2014-01-05 12:00';
SET @NewestSettlementDate = '2014-01-05 12:00';
SELECT SETTLEMENTDATE, REGIONID, FUEL_TYPE, SUM(SCADAVALUE) AS TOTAL_GENERATION
FROM
(SELECT SCADA.SETTLEMENTDATE, DETAIL.REGIONID, COALESCE(FUEL.AEMO_FUEL_TYPE, 'Other') AS FUEL_TYPE, SCADA.SCADAVALUE
FROM DISPATCH_UNIT_SCADA AS SCADA
LEFT JOIN GR_DUID_TO_FUEL_TYPE AS FUEL ON FUEL.DUID = SCADA.DUID
LEFT JOIN DUDETAILSUMMARY AS DETAIL ON DETAIL.DUID = SCADA.DUID
AND SCADA.SETTLEMENTDATE BETWEEN DETAIL.START_DATE AND DETAIL.END_DATE
WHERE SCADA.SETTLEMENTDATE BETWEEN @OldestSettlementDate AND @NewestSettlementDate)
AS X
GROUP BY SETTLEMENTDATE, REGIONID, FUEL_TYPE
ORDER BY SETTLEMENTDATE DESC, REGIONID, FUEL_TYPE
И в настоящее время он возвращающие результаты, как это ..
SETTLEMENTDATE REGIONID FUEL_TYPE TOTAL_GENERATION
2014-01-05 12:00:00.000 NSW1 Black Coal 5593.876490
2014-01-05 12:00:00.000 NSW1 Hydro 115.674860
2014-01-05 12:00:00.000 NSW1 Liquid Fuel 0.000000
2014-01-05 12:00:00.000 NSW1 Natural Gas 475.541690
2014-01-05 12:00:00.000 NSW1 Other 152.471500
2014-01-05 12:00:00.000 NSW1 Wind 153.175650
2014-01-05 12:00:00.000 QLD1 Black Coal 5176.610039
2014-01-05 12:00:00.000 QLD1 Hydro 40.795000
2014-01-05 12:00:00.000 QLD1 Liquid Fuel 0.000000
2014-01-05 12:00:00.000 QLD1 Natural Gas 1402.728840
2014-01-05 12:00:00.000 QLD1 Other 51.254405
2014-01-05 12:00:00.000 SA1 Brown Coal 274.644050
2014-01-05 12:00:00.000 SA1 Liquid Fuel 0.000000
2014-01-05 12:00:00.000 SA1 Natural Gas 365.815960
2014-01-05 12:00:00.000 SA1 Other 82.600000
2014-01-05 12:00:00.000 SA1 Wind 968.568336
Проблема заключается в том, я хочу, чтобы все виды топлива появляться для каждого дату расчета и регион. Например, бурый уголь должен показать на NSW1 общей генерации 0.
2014-01-05 12:00:00.000 NSW1 Brown Coal 0.000000
Я знаю, что я, вероятно, придется вступить в следующий подзапрос, но я не уверен, как он подходит в указанный выше запрос.
SELECT DISTINCT AEMO_FUEL_TYPE AS FUEL_TYPE
FROM GR_DUID_TO_FUEL_TYPE
Спасибо.
весьма неудачная конкатентация: "DUDETAILSUMMARY" –
lol. да, это не наша схема базы данных. Мы просто должны использовать его в нашем программном обеспечении. – craftworkgames