我需要從價格歷史表中找到專案的有效價格。我真的在與邏輯作斗爭,希望得到一些幫助。我已經嘗試了本網站上的一些解決方案,但找不到適合我的查詢。
下面是一個例子:
表 A 是我的主專案表。表 B 是我的價格歷史表,該表包含過去、當前和未來的價格。
我需要在專案編號上將表 B 連接到表 A 并選擇當前的有效價格。
表A
| 物品 |
|---|
| 123 |
| 456 |
表B
| 物品 | 價格 | 開始日期 | 結束日期 |
|---|---|---|---|
| 123 | 50 | 2021-01-01 | 2021-11-30 |
| 123 | 100 | 2021-12-01 | 2022-01-31 |
| 123 | 200 | 2022-02-01 | 2022-12-31 |
| 456 | 75 | 2021-02-01 | 2021-10-30 |
| 456 | 125 | 2021-11-01 | 2022-03-20 |
| 456 | 250 | 2022-03-21 | 2022-12-31 |
所以我的請求應該如下所示
| 物品 | 價格 |
|---|---|
| 123 | 100 |
| 456 | 125 |
uj5u.com熱心網友回復:
將當前日期與開始和結束范圍進行比較:
SELECT a.Item, b.Price
FROM TableA a
INNER JOIN TableB b
ON b.Item = a.Item
WHERE GETDATE() BETWEEN b.StartDate AND b.EndDate;
uj5u.com熱心網友回復:
您只能使用表 B 執行此操作:
select item,
price
from "Table B"
where getdate() between "Start Date" and "End Date"
這假設您不需要表 A 中未出現在表 B 中的專案,并且沒有重疊的日期范圍。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/401905.html
標籤:sql-server
