我试图在 Azure SQL 上做一些条件查询,但我完全不知道该怎么做。我有这两张表:
订单表
OrderID (PK)
...
订单历史表
OrderHistoryId (PK)
OrderId (FK)
DisplayString
OrderStatus
现在我想做的是将表 OrderHistory 加入到我的查询中,并根据针对 OrderHistory 的一些条件查询返回一个变量
SELECT O.OrderId, [...], Variable
FROM [Order] AS O
-- some code to get "Variable" from OrderHistory
ORDER BY O.OrderId DESC
OFFSET 0 ROWS
FETCH NEXT 200 ROWS ONLY
条件
- 如果与 O.OrderId 关联的任何行在 DisplayString 中包含 %FINISHED% 或 OrderStatus = 1;然后返回 1
- 如果与 O.OrderId 关联的任何行在 DisplayString 中包含 OrderStatus = 2 AND NOT %FINISHED%; 然后返回 2
- 如果与 O.OrderId 关联的所有 OrderStatus 的 SUM 等于 0;然后返回 3
结果
这就是我想要的结果:
OrderId [...] Variable
1 ... 1
2 ... 3
3 ... 2
4 ... 2