我陷入了在 SQL 中為此制定游戲計劃的回圈。下面是我的示例資料。我正在嘗試創建另一個名為“起始余額”的列,這將是前一行的“期末余額”中的金額。當我擁有它時,我只想顯示原因 = 計數的位置,而忽略其余部分。
我什至無法理解采取什么方法,任何建議將不勝感激。
樣本資料:
| 專案編號 | 物品 | 最近更新時間 | 原因 | 收支平衡 | 線 |
|---|---|---|---|---|---|
| 123 | 鉛筆 | 9/1/2020 | 更正 | 400 | 1 |
| 123 | 鉛筆 | 9/2/2020 | 更正 | 450 | 2 |
| 123 | 鉛筆 | 2020/9/3 | 數數 | 500 | 3 |
預期輸出:
| 專案編號 | 物品 | 最近更新時間 | 原因 | 起始余額 | 收支平衡 |
|---|---|---|---|---|---|
| 123 | 鉛筆 | 2020/9/3 | 數數 | 450 | 500 |
uj5u.com熱心網友回復:
如果“上一行”表示在當前行之前具有 Lastupdated 的行:
select * from (
select * , lag(ENDING_BALANCE,1,0) over (partition by ItemId order by LASTUPDATED) as Starting Balance
from table
) t where t.REASON = 'count'
uj5u.com熱心網友回復:
我無法對此進行錯誤測驗,但可能類似于:
SELECT
a.ITEM_ID,
a.ITEM,
a.LAST_UPDATED,
"Count" AS REASON,
b.ENDING_BALANCE AS Starting_Balance,
a.ENDING_BALANCE AS ENDING_BALANCE,
FROM table a
LEFT JOIN table b
ON a.ITEM_ID = b.ITEM_ID, a.LINE = b.LINE 1
請注意,我們在這里將同一張表的兩個副本連接在一起,并將它們標記為 a 和 b。不知道你是否可以做這樣的 ON,但你也可以讓連接表有一個 LINE 1 列,然后你用它來連接。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/348032.html
標籤:sql sql-server 查询语句
