sql C 如何获得销售订单的每一行都已关闭的销售订单?
发布时间:2023-12-15 02:26:41 所属栏目:MsSql 来源:DaWei
导读: 该表在其他字段中具有“Sales_Order_ID”,“Sales_Order_Line_Number”和“Sales_Order_Line_staus”.我想检索’Sales_Order_ID’,其中’Sales_Order_ID’的每条记录都具有相同的’Sales_Or
|
该表在其他字段中具有“Sales_Order_ID”,“Sales_Order_Line_Number”和“Sales_Order_Line_staus”.我想检索’Sales_Order_ID’,其中’Sales_Order_ID’的每条记录都具有相同的’Sales_Order_Line_Status’. 因此,如果销售订单X的每条记录都具有“已关闭”状态,那么我想要检索它.如果销售订单Y有三个状态为“已关闭”的记录和一个状态为“已打开”的记录,则我不想检索它. 我试过了: 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没有成功. 然后我去了完全noob并改变了连接类型只是希望它能工作.我是在这里关闭还是完全以错误的方式进行? 此外,我意识到上面的查询不会将结果限制为“已关闭”状态,但我想如果我能得到一个只返回所有相同状态行的结果,那么我可以将它们限制为“已关闭”. 对不起,如果不清楚的话!如果是这样,我会尽力澄清. 解决方法 SELECT so_ID FROM sales_order_table GROUP BY so_ID HAVING MAX(SO_line_status) = 'Closed' AND MIN(SO_line_status) = 'Closed' AND COUNT(CASE WHEN SO_line_status IS NULL THEN 1 END) = 0如果您的RDBMS支持,您也可以使用EXCEPT SELECT so_ID FROM sales_order_table WHERE SO_line_status = 'Closed' EXCEPT SELECT so_ID FROM sales_order_table WHERE SO_line_status IS NULL OR SO_line_status <> 'Closed'(编辑:吉安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – SSRS 2016 – 看不到参数
- sql-server – 如何从Sql Server中的Server Administrator保
- sql-server C 如何在没有CLR的SQL Server 2008中调试存储过
- [转]SQL 2005中pivot and unpivot的用法
- sql server Bulk Insert命令详细
- SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)
- 一起学Hive――创建内部表、外部表、分区表和分桶表及导入数
- 数据库 – LevelDB是否支持热备份(或等效)?
- sql – 如何避免数据库中的读锁?
- SQL Server -- 回忆笔记(四):case函数,索引,子查询,分
推荐文章
站长推荐
