ビューとして保存されているいくつかの要約クエリがあります...
...そして、次のように、それらを 1 つの結合された出力に結合したいと考えています。
..Excel のピボット テーブルとして使用できます。
この場合の唯一の共通点は 日付です。
SUMIFS を使用して Excel でこれを行うことができますが、Excel に到着する前に SQL で管理することをお勧めします。
誰でも助けることができますか?
ビューとして保存されているいくつかの要約クエリがあります...
...そして、次のように、それらを 1 つの結合された出力に結合したいと考えています。
..Excel のピボット テーブルとして使用できます。
この場合の唯一の共通点は 日付です。
SUMIFS を使用して Excel でこれを行うことができますが、Excel に到着する前に SQL で管理することをお勧めします。
誰でも助けることができますか?
一致する ID がない場合、私が考えることができる最良の方法は、 order byROW_NUMBER()
です。これにより、少し冗長なクエリが得られます。
WITH cte1 AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY DATE
ORDER BY CASE WHEN Dogs IS NULL THEN 1 END) r1
FROM View1
), cte2 AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY DATE
ORDER BY CASE WHEN Region IS NULL THEN 1 END) r2
FROM View2
), cte3 AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY DATE
ORDER BY CASE WHEN Bed IS NULL THEN 1 END) r3
FROM View3
)
SELECT COALESCE(cte1.Date, cte2.Date, cte3.Date) Date,
Dogs, D_Qty, Region, R_Qty, Bed, B_Qty
FROM cte1
FULL OUTER JOIN cte2
ON cte1.Date = cte2.Date AND r1=r2
FULL OUTER JOIN cte3
ON cte1.Date = cte3.Date AND r1=r3
OR cte2.Date = cte3.Date AND r2=r3
ORDER BY Date, COALESCE(r1,r2,r3)
を使用してビューに注文列を追加することを検討してください。ROW_NUMBER() OVER (PARTITION BY DATE ORDER BY (whatever order is in them)
これにより、すべての cte が削除され、物事の安定した順序が得られます。
問題を簡単に解決できるよりも、view1、view2、およびview3にもう1列追加できる場合は、