【发布时间】:2017-04-08 14:53:33
【问题描述】:
我正在使用查询来获取 Gridview 的结果
SELECT DISTINCT
Order_Header.Id, Order_Header.Payment_Id, Order_Header.Order_No
FROM
Order_Header
INNER JOIN
Order_Shipping_Detail ON Order_Header.Id = Order_Shipping_Detail.Order_Id
LEFT OUTER JOIN
cod_orders ON cod_orders.Order_Id = Order_Header.Id
WHERE
Status = 2
但是,我需要退回所有 status = 2 的订单以及付款 ID 为 cod(也是 status = 2)且 cod_orders.Is_confirmed = 1 的订单。
我可以为此使用 CASE 语句吗?
但是,如果我尝试这样做,我将取得我的成果。
SELECT DISTINCT Order_Header.Id, order_Header.Payment_Method_Id,Order_Header.Order_No
FROM Order_Header INNER JOIN Order_Shipping_Detail
ON Order_Header.Id = Order_Shipping_Detail.Order_Id
LEFT JOIN cod_orders
ON cod_orders.Order_Id = Order_Header.Id
WHERE Status = 2 and Payment_Method_Id != 6
UNION
Select DISTINCT Order_Header.Id, order_Header.Payment_Method_Id,Order_Header.Order_No
FROM Order_Header INNER JOIN Order_Shipping_Detail
ON Order_Header.Id = Order_Shipping_Detail.Order_Id
LEFT JOIN cod_orders
ON cod_orders.Order_Id = Order_Header.Id
WHERE Status = 2 AND cod_orders.Is_Confirmed = 1
我可以将这些合并到一个查询中吗?
【问题讨论】:
-
最好提供有问题的样本数据和预期输出
-
您是否尝试过
WHERE中的CASE语句?
标签: sql sql-server gridview case