我有 2 個相同的查詢,但來自不同的表。我需要把月數加起來。例如:Jan tab1 Jan tab2 = Jan。我相信我應該在臨時表上執行此操作,但我無法繼續前進。
查詢1
SELECT
FORMAT(DateTimeEmission, 'MMM','pt-BR') as Mês,
COUNT (*) as Quantidade
FROM
[dbo].[QuotationOne]
GROUP BY
FORMAT(DateTimeEmission, 'MMM', 'pt-BR')
查詢1的結果:
ago 551
dez 688
fev 430
jan 468
nov 603
out 557
set 626
查詢2
SELECT
FORMAT(DateTimeEmission, 'MMM','pt-BR') as Mês,
COUNT (*) as Quantidade
FROM
[dbo].[QuotationTwo]
GROUP BY
FORMAT(DateTimeEmission, 'MMM', 'pt-BR')
查詢2的結果:
ago 15
dez 19
fev 21
jan 32
nov 26
out 32
set 16
我需要的查詢是:
ago 551 15
dez 688 19
fev 430 21
jan 468 32
nov 603 26
out 557 32
set 626 16
uj5u.com熱心網友回復:
在子查詢中將兩個表聯合在一起,然后針對結果運行聚合。
SELECT
FORMAT(DateTimeEmission, 'MMM','pt-BR') as Mês,
COUNT(*) as Quantidade
FROM
(
SELECT DateTimeEmission FROM [dbo].[QuotationOne]
UNION ALL
SELECT DateTimeEmission FROM [dbo].[QuotationTwo]
)
AS Quotation
GROUP BY
FORMAT(DateTimeEmission, 'MMM', 'pt-BR')
uj5u.com熱心網友回復:
SELECT
COALESCE(Q1.Mes,Q2.Mes) AS [Mes]
,COLALESCE(Q1.Quantidade,0) COALESCE(Q2.Quantidade,0) AS [Quantidade]
FROM
(...Query1) AS Q1
FULL OUTER JOIN
(...Query2) AS Q2 ON Q2.Mes = Q1.Mes
將 ...Query1 替換為您的第一個查詢,將 ...Query2 替換為您的第二個查詢。如果月份匹配,完整的外部聯接將回傳兩個查詢的記錄并對齊它們 COALESCE() 確保您不會獲得 NULL 值。第一個將從 Q1 或 Q2 開始,如果特定查詢沒有回傳行,則添加中的那些將回傳 0。
uj5u.com熱心網友回復:
您可以使用 SQL UNION ALL 組合 2 個或更多 SELECT 陳述句的結果集。
uj5u.com熱心網友回復:
你需要像
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/436627.html
上一篇:將引數放入SQL表創建腳本中的IDENTITY(1,1)屬性中
下一篇:使用映射表時獲取未映射記錄的計數
