0
votes

Comment rejoindre la table de et comparer l'identifiant avec l'identifiant principal

Quand j'essaie d'obtenir le résultat, je reçois l'erreur suivante:

msg 4104, niveau 16, état 1, ligne 2 L'identifiant multi-pièces "res.MainSaying" n'a pas pu être lié. xxx


1 commentaires

Votre requête n'est pas syntaxiquement correcte car HRT n'est pas défini.


3 Réponses :


0
votes

une sous-requête qui fait partie du à partir de code> (ou jointure code>) La clause n'a pas accès à la requête principale, c'est pourquoi vous obtenez le message d'erreur. (BTW, sur le premier sélection, vous devez obtenir la même erreur, juste sur cp.id code> au lieu de res.MainSayingID code>)

La première requête peut être corrigée par simplification : p> xxx pré>

La seconde requête peut être corrigée en modifiant le code> rejoindre code> à une sous-requête corrélée: p>

select  hrt.NameRU, 
        (
            select top 1 ID 
            from Resolutions 
            where MainStayingID = res.MainStayingID 
            order by ID DESC
        ) as ID, 
        res.* 
from PunishmentMeasure as pm  
inner join CourtDecisions as cd 
    on cd.ID = pm.CourtDecisionID
inner join Resolutions as res 
    on res.ID = cd.ResolutionID


0 commentaires

0
votes

Si vous souhaitez filtrer votre sous-requête avec des colonnes de table externes, vous pouvez utiliser croix ou externe xxx


1 commentaires

C'était aussi mon initiale, cependant, lorsque vous lisez la requête, vous réalisez que la table dérivée est en fait équivalente complètement à une sous-requête corrélée, car la requête principale n'utilise que la colonne ID peut simplement revenir Juste cette valeur scalaire unique et il n'y a pas besoin de la SELECT * ou du Appliquer Opérateur.



0
votes

Pourquoi pas simplement utiliser les fonctions de la fenêtre? XXX

Je trouve la comparaison sur r2as.id n'est pas null pour être superflu. Une colonne appelée id ne doit jamais être null et je m'attendrais à un match basé sur les autres conditions de la requête.

Je ne pense même pas même Vous avez besoin d'une sous-requête ici (mais vous n'avez pas expliqué la logique ni fournissait des échantillons de données et des résultats souhaités): xxx

Ces solutions ignorent le problème que HRT est indéfini dans votre requête.


0 commentaires