我想知道在SQL中是否可能只顯示一行,然後當該行中的值更改時還顯示另一行。例如,我有一張費用表。費用可以添加到訂單中。當已經添加的費用,更改了費用數量時,原始費用行標記爲刪除,新的費用行添加新的數量。完成此修訂後,舊數量將標記爲DeletedUnverified(StatusId 20),並且新費用數量行將處於Paid(StatusId 7)狀態。然後,主管必須驗證這些費用更改,因此一旦他們這樣做,'deletedUnverified'行的狀態將更改爲已刪除(StatusId 18),新的費用數量行將保持與Paid相同。SQL根據另一行中的值更改而顯示多行
上面的圖象顯示的費用,他們改變了第一時間(頂部兩行)和主管後已經驗證了變化(底部兩行)。前兩行是數據驗證之前的數據(因此statusId = 20是DeletedUnverified)。一旦管理員確定,狀態將變爲18(已刪除)。我想要做的是收費沒有得到驗證時,只顯示一個。所以在上面的圖片中,頂部行,我只想顯示行ID 111(StatusId 20)。一旦費用得到驗證,我想要顯示兩行,即上面的兩行。
我有代碼顯示statusID 20行,然後當它更新到狀態ID 18,它只顯示StatusId 7行,但我不能得到我想要的。我希望這是有道理的。
SELECT
*
FROM
FeeItem sub1
INNER JOIN (
SELECT
ISNULL(b.feeitemid, a.itemid) AS pharmacyformfeeitemid
FROM
(
SELECT
*
FROM
FormFeeItem
WHERE
OrderId IN (1234)
AND StatusId = 7
) a
LEFT JOIN (
SELECT
*
FROM
FormFeeItem
WHERE
OrderId IN (1234)
AND StatusId = 20
) b ON a.OrderId = b.OrderId
) sub2 ON sub1.FeeItemId = sub2.feeitemid
任何幫助表示讚賞...在此先感謝:)
輝煌!工作了一種享受....謝謝! :) – clueless83