如何查询一月到十二月的所有月份

How to query all months from January to December

如何查询从 1 月到 12 月的所有月份的所有值。 0的值也应该出现在查询结果中。

我的查询:

SELECT * 
FROM 
    (SELECT 
         MONTH(begin_ts) AS [Month],
         SUM(CASE 
                 WHEN bmktonr = '7' 
                     THEN dauer 
                     ELSE reserve1 
             END) + SUM(CASE 
                            WHEN bmktonr = '11' 
                                THEN dauer  
                                ELSE reserve1 
                        END) AS Prozess_Verfügbarkeit,
         SUM(CASE 
                 WHEN bmktonr = '1' 
                     THEN dauer 
                     ELSE reserve1 
             END) + SUM(CASE 
                            WHEN bmktonr = '2' 
                                THEN dauer 
                                ELSE reserve1 
                        END) AS Verfügbarkeit
     FROM 
         [hydra1].[hydadm].[v_ereignis]
     WHERE 
         masch_nr = 'FIMI1'
         AND YEAR(begin_ts) = YEAR(CURRENT_TIMESTAMP)
     GROUP BY 
         MONTH(begin_ts)) T
INNER JOIN
    (SELECT 
         p.masch_nr,
         SUM(b.ruest_zeit) AS SOLLRüsten,
         SUM(b.bearb_zeit) AS SOLLProduktion,
         SUM(b.ruest_zeit_zuschl) AS SOLLZuschlag,
         SUM(p.bmk_07) AS ISTRüsten,
         SUM(p.bmk_11) AS ISTProduktion,
         MONTH(prot_dat) AS Month
     FROM 
         [hydra1].[hydadm].[v_auftrag_status] p
     JOIN 
         [hydra1].[hydadm].[v_auftrags_bestand] b ON b.auftrag_nr = p.auftrag_nr
     WHERE 
         p.masch_nr = 'GEORG'
         AND a_status = 'E'
         AND YEAR(prot_dat) = YEAR(CURRENT_TIMESTAMP)
     GROUP BY 
         p.masch_nr, MONTH(prot_dat)) T1 ON T.Month = T1.Month
ORDER BY 
    T.Month 

它应该是这样的:

Month | Prozess_Verfügbarkeit | Verfügbarkeit
------+-----------------------+--------------
 1    |         344           |     4556
 2    |         0             |     0
 3    |         0             |     0
 4    |         0             |     0
 5    |         0             |     0
 6    |         0             |     0
 7    |         0             |     0
 8    |         0             |     0
 9    |         0             |     0
 10   |         0             |     0
 11   |         0             |     0
 12   |         0             |     0

非常感谢。

应该这样做:

WITH months AS (
           SELECT 1 AS month_number
 UNION ALL SELECT 2
 UNION ALL SELECT 3
 ...
 UNION ALL SELECT 12
)
SELECT months.month_number
     , your_query.thing_a
     , your_query.thing_b
FROM   months
 LEFT
  JOIN your_query
    ON your_query.Month = months.month_number
;