我有一个显示订单列表的查询输出。如果这些订单包含子订单,则某些订单可能在查询输出中占用多于一条记录。每个订单在输出中占用一个单独的行。 OrderID列对输出中的所有子订单具有相同的值:
OrderID Sub-Order Price
1 1 100
1 2 50
2 1 30
3 1 50
我需要添加一个列"折扣"到输出并按照以下规则填写:
我的查询是两个SELECT的UNION。
我在ms sql studio中使用mssql
答案 0 :(得分:0)
使用CASE
和COUNT
窗口功能
SELECT OrderID, Sub-Order, Price,
CASE WHEN (count(*) OVER (PARTITION BY OrderID)) > 1
THEN Price * 0.8
ELSE Price * 0.9
END
FROM ( table or <query> )