簡體   English   中英

如何將來自同一數據庫的兩個查詢與不同的 where 子句結合起來?

[英]How to combine two queries from same DB with different where clauses?

SELECT
    DATE_PART(week, pickup_date) AS Week,
    CAST(pickup_date AS date),
    Sum(pick_up) AS pickup,
    location_id
FROM
    really_large.db
WHERE
    location_id IN ('Location_1', 'Location_2', 'Location_3')
    AND DATE_PART(week, event_pickup_date) IS NOT NULL
    AND pick_up = 1
    AND in_transit = 0
    AND scan_event = 0
    AND delivery = 0
    AND return_datetime_min IS NULL
GROUP BY
    Date_part(week, pickup_date), CAST(pickup_date AS date), location_id
ORDER BY
    Date_part(week, pickup_date) DESC, CAST(pickup_date AS date) DESC, location_id ASC

UNION

SELECT
    DATE_PART(week, pickup_date) AS Week,
    CAST(pickup_date AS date),
    SUM(in_transit) AS In_Transit,
FROM
    really_large.db
WHERE
    location_id IN ('Location_1', 'Location_2', 'Location_3')
    AND DATE_PART(week, event_pickup_date) IS NOT NULL
    AND pick_up = 1
    AND in_transit = 1
    AND scan_event = 0
    AND delivery = 0
    AND return_datetime_min IS NULL
GROUP BY 
    Date_part(week, pickup_date), CAST(pickup_date AS date), location_id
ORDER BY
    Date_part(week, pickup_date) DESC, CAST(pickup_date AS date) DESC, location_id ASC;

Union 導致語法錯誤。

理想情況下,這將顯示

星期 日期 總和(拾音) 總和(in_transit) 位置 ID
28 7/18/21 72 88 位置_1
28 7/18/21 75 68 位置_2
28 7/18/21 96 72 位置_3
27 7/14/21 76 92 位置_1
27 7/14/21 71 72 位置_2
27 7/14/21 69 81 位置_3

兩個查詢都需要返回相同數量的列和數據類型才能進行聯合。 您的第二個查詢缺少 location_id 列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM