2010-12-02 14 views
0

Je suis très faible à join et je dois savoir comment puis-je convertir la requête suivante en utilisant des jointures. Cette requête fonctionne correctement avec les sous-requêtes mais j'ai besoin de la convertir et de l'utiliser pour faire des jointures.Comment utiliser JOIN dans la requête UPDATE

update dbo.TFIN_Stmt_Line_Item_Dtl 
set Stmt_Line_Item_Dtl_Desc='Changes from Baseline' 
where Stmt_Line_Item_Dtl_Desc='Increased Hours' 
and Stmt_Line_Item_Id 
in (select tmt_Line_Item_Ref_Id 
    from dbo.TFIN_Stmt_Line_Item 
    where Stmt_Line_Item_Type_Id = 
     (select Stmt_Line_Item_Type_Id 
     from dbo.TFIN_Stmt_Line_Item_Type 
     where Stmt_Line_Item_Desc like 'ABOX/RBOX Amendment 18 and 20')) 

S'il vous plaît si n'importe quel corps peut m'aider.

Merci

+0

pouvez-vous Anglais votre titre s'il vous plaît –

+1

@ Daniel: C'est ma faute, mauvaise mise en page utilisée. J'ai déjà édité le sujet, s'il vous plaît supprimer vos commentaires – abatishchev

+0

whats weired sur le titre. Je voulais juste que comment puis-je convertir cette requête en utilisant Joins –

Répondre

3

Après requête utilise pour mettre à jour votre joint table, mais si ce serait plus rapide reste à voir.

Pourriez-vous poster le plan de requête afin que nous puissions jeter un oeil à ce

update dbo.TFIN_Stmt_Line_Item_Dtl 
set  Stmt_Line_Item_Dtl_Desc = 'Changes from Baseline' 
from dbo.TFIN_Stmt_Line_Item_Dtl dtl 
     inner join dbo.TFIN_Stmt_Line_Item li on li.tmt_Line_Item_Ref_Id = dtl.Stmt_Line_Item_Id 
     inner join dbo.TFIN_Stmt_Line_Item_Type lit on lit.Stmt_Line_Item_Type_Id = li.Stmt_Line_Item_Type_Id 
where dtl.Stmt_Line_Item_Dtl_Desc='Increased Hours' 
     and lit.Stmt_Line_Item_Desc like 'ABOX/RBOX Amendment 18 and 20' 
1
update dbo.TFIN_Stmt_Line_Item_Dtl 
set Stmt_Line_Item_Dtl_Desc='Changes from Baseline' 
where Stmt_Line_Item_Dtl_Desc='Increased Hours' 
and Stmt_Line_Item_Id 
in (select tmt_Line_Item_Ref_Id 
    from dbo.TFIN_Stmt_Line_Item Item 
    JOIN dbo.TFIN_Stmt_Line_Item_Type Type 
    on Type.Stmt_Line_Item_Type_Id = Item.Stmt_Line_Item_Type_Id 
    and Type.Stmt_Line_Item_Desc like 'ABOX/RBOX Amendment 18 and 20') 

ou

update dbo.TFIN_Stmt_Line_Item_Dtl 
set Stmt_Line_Item_Dtl_Desc = 'Changes from Baseline' 
from dbo.TFIN_Stmt_Line_Item_Dtl Detail 
JOIN dbo.TFIN_Stmt_Line_Item Item 
on Item.tmt_Line_Item_Ref_Id = Detail.Stmt_Line_Item_Id 
JOIN dbo.TFIN_Stmt_Line_Item_Type Type 
on Type.Stmt_Line_Item_Type_Id = Item.Stmt_Line_Item_Type_Id 
and Type.Stmt_Line_Item_Desc like 'ABOX/RBOX Amendment 18 and 20') 
where Detail.Stmt_Line_Item_Dtl_Desc = 'Increased Hours'