大家好,我是 SQL 新手,我正在嘗試通過應用某些過濾器從銷售事實表生成一個新表,這些過濾器是:
- payment_date 不能為 NULL
- order_status 既不能是“已取消”,也不能是垃圾
- 賣家ID!= 2119
- 并且創建訂單的日期必須介于“2022-01-01”和“2022-01-15”之間
除了最后一個過濾器之外,我的所有過濾器都得到了很好的結果,我的查詢沒有過濾我正在尋找的日期范圍。
我的查詢如下:
SELECT * FROM `test_orders_new`
WHERE (NOT(((`payment_date`) IS NULL))
AND `seller_id` != 2119.0
AND `order_status` != 'cancelled'
AND `order_status` != 'trash'
AND CAST(`order_created_at` AS DATE) BETWEEN CAST('2022-01-01' AS DATE) AND CAST('2022-01-15' AS DATE))
我懷疑它與我用于“order_created_at”的列的型別有關。這是資料外觀的示例。
order_seller_id order_id order_created_at payment_date order_status seller_id total_item_quantity
1 86329-1425 86329 2022-01-01T09:50:43Z 2022-01-01T09:50:43Z completed 1425 2
2 86331-2537 86331 2022-01-01T15:40:13Z 2022-01-01T15:40:13Z completed 2537 1
3 86332-75 86332 2022-01-02T08:45:17Z 2022-01-02T08:45:17Z completed 75 1
4 86341-1724 86341 2022-01-02T22:56:28Z 2022-01-02T22:56:28Z completed 1724 1
5 86529-249 86529 2022-01-04T09:23:31Z 2022-01-04T09:23:31Z completed 249 1
6 86560-1994 86560 2022-01-05T13:33:00Z 2022-01-05T13:33:00Z completed 1994 1
非常感謝有關如何使此查詢起作用的任何建議。
uj5u.com熱心網友回復:
我會使用這個版本:
SELECT COUNT(DISTINCT order_seller_id)
FROM test_orders_new
WHERE payment_date IS NOT NULL AND
seller_id != 2119 AND
order_status NOT IN ('cancelled', 'trash') AND
order_created_at >= '2022-01-01' AND order_created_at < '2022-01-16';
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/460610.html
上一篇:使用動態引數(陣列)的PDO查詢
