提问人:Doomguy 提问时间:4/11/2023 最后编辑:Joel CoehoornDoomguy 更新时间:4/11/2023 访问量:57
SQL 行 根据条件选择
SQL Row Select Based on Condition
问:
我正在尝试找到一种根据MSSQL中的条件选择行的方法,我有两行
所以 | 行号 | 线路状态 | 订单数量 |
---|---|---|---|
一个 | 1 | 10 | 4 |
一个 | 1 | 80 | 4 |
我应该如何在 SQL 中编写 -- 首先选择行状态为 80 和 SUM(OrderQty) 的行,如果没有行状态 = 80 的行,则选择行状态 = 10 和 SUM(OrderQty)。
你能提出一些建议吗,提前致谢
我已经尝试了 AND OR 条件,但没有按预期工作。你能提出一些建议来帮助我吗?
答:
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
你的加入条件很奇怪。您根本没有在条件中引用列t1
ON
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
谢谢,这对我来说是预期的。它不起作用,因为我按行号和状态分组,但按项目分组就成功了,
评论