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é. P> blockQuote>
xxx pré> p>
3 Réponses :
une sous-requête qui fait partie du La première requête peut être corrigée par simplification : p> La seconde requête peut être corrigée en modifiant le code> rejoindre code> à une sous-requête corrélée: p> à 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>) 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
Si vous souhaitez filtrer votre sous-requête avec des colonnes de table externes, vous pouvez utiliser croix ou externe code>
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 code> peut simplement revenir Juste cette valeur scalaire unique et il n'y a pas besoin de la SELECT * CODE> ou du Appliquer code> Opérateur.
Pourquoi pas simplement utiliser les fonctions de la fenêtre? Je trouve la comparaison sur 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): p> Ces solutions ignorent le problème que r2as.id n'est pas null code> pour être superflu. Une colonne appelée id code> ne doit jamais être null code> et je m'attendrais à un match basé sur les autres conditions de la requête. P> HRT code> est indéfini dans votre requête. p> p>
Votre requête n'est pas syntaxiquement correcte car
HRT code> n'est pas défini.