如何仅显示所有项目都完成的订单?

时间:2018-07-30 01:03:59

标签: sql-server

我是编程新手,所以请保持友好。 我什至不知道从哪里开始这个问题...

我正在尝试编写一个sql视图,以仅显示已完成的订单。 我有一张看起来像这样的桌子

sample table

结果应显示订单1和3,因为它们都已完成。订单2不应显示,因为其中一项仍为“ F”,无论数量多少,我只想显示一次订单。

有人可以指出正确的方向吗?

谢谢 软件-SQL Server 2005

1 个答案:

答案 0 :(得分:0)

您可以将GROUP BYHAVING一起使用,以达到所需的条件

SELECT Order_nbr
FROM   yourtable
GROUP BY Order_nbr
HAVING MIN (completed) = 'P'

对于已完成的订单,completed列将全部为'P',因此MIN(completed)将为'P'

对于未完成的订单,completed列将至少包含一个F,因此MIN(completed)将为您提供F