0
Привет, я сделал 2 запроса для обновления некоторых данных. Но мне нужно сделать его более простым. вместо того, чтобы делать 2 запроса, мне нужно сделать один запрос. и соединения, которые я использовал, мне нужно использовать его только один раз. любой орган может помочь мне с этим:Множественная регистрация, несколько операторов where и несколько обновлений
Текущий запрос:
USE DB02
GO
UPDATE TCC
SET RANK = 'S'
FROM TOTAL_NEGO_HISTORY TNH
JOIN M_CONTRACT MC ON TNH.CONTRACT_ID = MC.CONTRACT_ID
JOIN T_DEPOSIT_ASSIGNED_LIST TDAL ON TDAL.CONTRACT_ID = MC.CONTRACT_ID
JOIN T_DEPOSIT_HISTORY TDH ON TDH.DEPOSIT_NO = TDAL.DEPOSIT_NO
JOIN T_CREDIT_CONTRACT TCC ON TCC.CONTRACT_ID = MC.CONTRACT_ID
WHERE TDH.DEPOSIT_YMD = TNH.COMMITMENT_DATE
GO
UPDATE TCC
SET RANK = 'C2'
FROM TOTAL_NEGO_HISTORY TNH
JOIN M_CONTRACT MC ON TNH.CONTRACT_ID = MC.CONTRACT_ID
JOIN T_DEPOSIT_ASSIGNED_LIST TDAL ON TDAL.CONTRACT_ID = MC.CONTRACT_ID
JOIN T_DEPOSIT_HISTORY TDH ON TDH.DEPOSIT_NO = TDAL.DEPOSIT_NO
JOIN T_CREDIT_CONTRACT TCC ON TCC.CONTRACT_ID = MC.CONTRACT_ID
WHERE TDH.DEPOSIT_MONEY = TNH.COMMITMENT_AMAOUNT
GO
Ожидаемое что-то вроде ниже:
USE DB02
GO
UPDATE TCC
SET RANK = 'S' case WHEN TDH.DEPOSIT_YMD = TNH.COMMITMENT_DATE
SET RANK = 'C2' case WHEN TDH.DEPOSIT_MONEY = TNH.COMMITMENT_AMAOUNT
FROM TOTAL_NEGO_HISTORY TNH
JOIN M_CONTRACT MC ON TNH.CONTRACT_ID = MC.CONTRACT_ID
JOIN T_DEPOSIT_ASSIGNED_LIST TDAL ON TDAL.CONTRACT_ID = MC.CONTRACT_ID
JOIN T_DEPOSIT_HISTORY TDH ON TDH.DEPOSIT_NO = TDAL.DEPOSIT_NO
JOIN T_CREDIT_CONTRACT TCC ON TCC.CONTRACT_ID = MC.CONTRACT_ID
GO
Вы можете использовать 'Else RANK' оставить значение, как это был – cha
Ohh !, Извините, моя ошибка, вы правы –