我有一個包含產品常規信息的表。另一張表具有定價信息,兩個表都是1:n相關的。所以每個產品可能(至少)1到n的價格。設置變量並將它們用於查詢中的輸出
現在我需要在視圖中顯示一些價格以及產品。同樣爲了形成一些行,我不得不增加或者增加一些這些價格。
在我的第一次嘗試中,我對輸出和操作使用了子查詢。哪些工作,但表現是... meh ... 我想過使用變量來設置定價值一次,只是重用它們。如果我能夠一次設置2個或更多變量,情況會更好。但是如何?
我的基本查詢如下所示:
SELECT *
FROM (
SELECT ProductNr,
Description,
Year, ROW_NUMBER() OVER
(PARTITION BY ProductNr ORDER BY Year DESC) RowRank
FROM Products
WHERE Year like '2014'
AND Manager = 1
)sub
WHERE RowRank = 1
一個子查詢基本建立這樣的:
(SELECT Price FROM PricingInfo
WHERE Manager = 1
AND year = Products.Year
AND no = 1
AND ArticleNr = Products.ProductNr)
我用
DECLARE @price float
-- other ones...
SELECT *
FROM (
SELECT ProductNr,
Description,
@price = (SELECT colXX FROM PricingInfo
WHERE Manager = 1
AND year = products.Year
AND row = 'Y'
AND ArticleNr = products.ProductNr),
@price*1.2 as PriceWithTax
Year, ROW_NUMBER() OVER
(PARTITION BY ProductNr ORDER BY Year DESC) RowRank
FROM Products products
WHERE Year like '2014'
AND Manager = 1
)sub
WHERE RowRank = 1
進行的嘗試這可能使用這樣的構造?
EDIT [21:09] - @MatBailie要求的一些例子:
ProductNr|Description|Year
001| Teddy Bear|2012
002| Card game|2013
003| Book|2012
003| Book|2013
定價-信息:
Category|No|Price|Notice| ID|Year
1 |1 |35,22|No Tax|001|2012
1 |2 |38,18|Tax |001|2012
1 |3 |19,91|Bought|001|2012
1 |1 |19,91|Bought|002|2013
你能展示一些示例輸入和輸出數據嗎?我很肯定有更簡單的方法來完成你所需要的,但是我並不完全清楚你的功能需求。這僅僅是「獲得每個產品的最新價格」的情況,然後將它們按原樣顯示並且還乘以1.2? – MatBailie
@MatBailie:添加了他們:) – Qohelet