我想知道在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