【发布时间】:2017-04-07 19:19:48
【问题描述】:
我有一张像这样的桌子。
| ItemCode | AvgPrice | PriceList | ComplimentaryItemCode |
| AL01 | 22 | 1 | AL02 |
| AL02 | 19 | 1 | AL03 |
| AL03 | 7 | 1 | AL01 |
| BA01 | 50 | 1 | NULL |
| BA01 | 60 | 1 | BA01 |
我想在查询中创建一个额外的列来显示 ComplimentaryItemCode 的 AvgPrice,如下所示;
| ItemCode | AvgPrice | PriceList | ComplimentaryItemCode | AvgPriceComplimentary
| AL01 | 22 | 1 | AL02 | 19
| AL02 | 19 | 1 | AL03 | 7
| AL03 | 7 | 1 | AL01 | 22
| BA01 | 50 | 1 | NULL | null
| BA01 | 60 | 1 | BA01 | 50
到目前为止,我尝试了这个,但没有运气;
SELECT a.ItemCode, a.AvgPrice, t.PriceList, a.ComplimentaryItemCode,
(SELECT AvgPrice
FROM MATERIALS AS a
WHERE (ItemCode = ComplimentaryItemCode)) AS AvgPriceComplimentary
FROM MATERIALS AS a LEFT OUTER JOIN
PRICES AS t ON t.ItemCode = a.ItemCode AND t.PriceList = 1
WHERE (T.PriceList <> 107) AND (T.PriceList <> 108)
任何帮助都会很棒!
【问题讨论】:
标签: sql sql-server sql-server-2008 sql-server-2012