【发布时间】:2012-02-02 06:56:10
【问题描述】:
该表具有“Sales_Order_ID”、“Sales_Order_Line_Number”和“Sales_Order_Line_staus”等字段。我想检索“Sales_Order_ID”,其中“Sales_Order_ID”的每条记录都具有相同的“Sales_Order_Line_Status”。
所以,如果销售订单 X 的每条记录的状态为“已关闭”,那么我想检索它。如果销售订单 Y 有 3 条状态为“已关闭”的记录和一条状态为“打开”的记录,那么我不想检索它。
我试过了:
SELECT DISTINCT s1.so_ID, s1.SO_line_status
FROM sales_order_table s1
INNER JOIN sales_order_table s2
ON s1.so_id = s2.so_id
AND s1.so_line_status = s2.so_line_status
ORDER BY s1.so_id
没有成功。以下似乎与我想要的相反:
SELECT DISTINCT s1.so_ID, s1.SO_line_status
FROM sales_order_table s1
INNER JOIN sales_order_table s2
ON s1.so_id = s2.so_id
AND s1.so_line_status <> s2.so_line_status
ORDER BY s1.so_id
所以我尝试了:
SELECT DISTINCT s1.so_ID, s1.SO_line_status
FROM sales_order_table s1
INNER JOIN sales_order_table s2
ON s1.so_id = s2.so_id
AND NOT s1.so_line_status <> s2.so_line_status
ORDER BY s1.so_id
没有成功。
然后我完全是菜鸟,改变了连接类型,只是希望它能起作用。我是接近这里还是完全走错了路?
另外,我意识到上面的查询不会将结果限制为“关闭”状态,但我想如果我能得到一个只返回所有相同状态行的查询,我就可以将它们限制为“关闭”。
抱歉,如果不清楚!如果是这样,我会尽力澄清。
【问题讨论】:
标签: sql