连接表但仅适用于具有相同Id的第一行

时间:2015-01-23 19:52:02

标签: sql join

我有两个表格,其中包含有关每个SKU(产品)的信息:TransactionTable和PositionTable(见下图)。

我尝试了一些方法来加入2个表,但我一直在InCorrectSkusPositionAndNrTran中看到结果。我想在CorrectSkusPositionAndNrTran中看到结果。

我想要第二个结果的原因是因为它能够准确地表示每个SKU的交易数量,所以我可以总结一下。

1 个答案:

答案 0 :(得分:0)

在Teradata上尝试以下操作:
SELECT
POS.SKU_Id
,POS.PositionInStore
,CASE WHEN RANK() OVER(PARTITION BY TR.SKU_Id ORDER BY TR.SKU_Id
{ {1}} ASC ,POS.PositionInStore ASC) = 1 THEN TR.nr_transactions ELSE NULL END
FROM TransactionTable TR RIGHT OUTER JOIN PositionTable POS

并提供所需的输出表。