SQL 行 根据条件选择

SQL Row Select Based on Condition

提问人:Doomguy 提问时间:4/11/2023 最后编辑:Joel CoehoornDoomguy 更新时间:4/11/2023 访问量:57

问:

我正在尝试找到一种根据MSSQL中的条件选择行的方法,我有两行

所以 行号 线路状态 订单数量
一个 1 10 4
一个 1 80 4

我应该如何在 SQL 中编写 -- 首先选择行状态为 80 和 SUM(OrderQty) 的行,如果没有行状态 = 80 的行,则选择行状态 = 10 和 SUM(OrderQty)。

你能提出一些建议吗,提前致谢

我已经尝试了 AND OR 条件,但没有按预期工作。你能提出一些建议来帮助我吗?

SQL SQL Server IF- 条件语句

评论

0赞 The Impaler 4/11/2023
请向示例数据添加更多行。你想按顺序求和()吗?订单中的所有项目还是仅其中的一部分?
0赞 SelVazi 4/11/2023
你能添加预期的输出吗

答:

0赞 Monofuse 4/11/2023 #1

我喜欢使用连接来做这样的事情:

   SELECT *
   FROM table1 t1
   JOIN table2 t2 
      ON t2.id = (
       SELECT TOP 1 id
       FROM table2 innerT2
       WHERE innerT2.condition = condition
   )

评论

0赞 Squirrel 4/11/2023
你的加入条件很奇怪。您根本没有在条件中引用列t1ON
0赞 JMS 4/11/2023 #2

这对你有用吗?

select LineStatus, SUM(OrderQty) as SumOrder
from Table_1
group by LineStatus 
order by LineStatus desc
0赞 tinazmu 4/11/2023 #3

我们可以假设您是按 SO 分组吗?如果是这样,像这样的东西应该可以工作:

select 
  SO
, coalesce(SUM(case when LineStatus=80 then OrderQty end)
          ,SUM(case when LineStatus=10 then OrderQty end)) as SumOrder
from Table_1
group by SO

评论

0赞 Doomguy 4/12/2023
谢谢,这对我来说是预期的。它不起作用,因为我按行号和状态分组,但按项目分组就成功了,