我有一个问题如何编写一个查询
以下是产品映射表样本
Seq Product
1. [N/A]
2. App
3. App OTH
4. Opp FCL
5. Opp LCL
6. Opp OTH
7. OTH
我有另一个表,一个条目显示几个记录,有时一个条目有几个产品!
例如
Seq Entry ProductSales
1. 7SX3456 [N/A]
2. 7SX3456 Opp FCL
3. 7SX3456 Opp OTH
我想写一个查询,逻辑是,如果条目产品显示[N / A],那么我将从产品匹配表中搜索与条目产品匹配的第二个产品。所以在这种情况下,我会选择“Opp FCL”,因为我不选择[N / A]而“Opp OTH”来自“Opp FCL”。
因此,此条目的产品我将更新为所有记录的Opp FCL。
答案 0 :(得分:0)
使用带有ROW_NUMBER的公用表表达式
;WITH CTE
AS
(
SELECT Seq, Entry, ProductSales,
ROW_NUMBER() OVER (Partition By Entry ORDER BY Seq) AS RN
FROM ProductSales
WHERE ProductSales <> '[N/A]'
)
SELECT Seq, Entry, ProductSales
FROM CTE
WHERE RN = 1