0
votes

SQL: Utilisation de colonnes que vous venez de créer dans SQL Server

Désolé, si cette question a déjà été postée, mais je suis assez nouveau sur SQL Server et je ne trouve pas la réponse que je recherche. (Peut-être que je suis juste incapable de le verser correctement .. oh bien)

Donc, essaie de travailler avec une colonne qui vient d'être créée dans ma requête p>

comme un exemple très simple : P>

SELECT q.Account, q.Quantity, q.Price,

CASE
    WHEN q.Account = '49661B' THEN (q.Quantity * q.Price)

END AS [USD Total Value],

[USD Total Value] * 1.34 as [CDN Value]

FROM Quote as q


0 commentaires

4 Réponses :


2
votes

Vous devez le faire sous la forme d'une sous-requête xxx

ceci devrait vous donner ce que vous avez besoin

update

Au fur et à mesure que Uuerdo a dit

alias d'expressions de sélection peut ne pas être référencé nulle part dans la requête (à ce niveau ... des alias dans les sélections d'une sous-requête peuvent être référencés dans la requête extérieure) < / p>


1 commentaires

Ce n'est pas spécifiquement lié à une expression de cas. Pour être plus précis, des alias d'expressions sélectionnées peuvent ne pas être référencés nulle part dans la requête (à ce niveau ... des alias dans les sélections d'une sous-requête peuvent être référencés dans la requête extérieure).



1
votes

SQL Server ne permet pas de renvoyer un alias au même niveau: xxx

Si vous n'aimez pas l'idée de tout emballer avec de l'extérieur, puis cross s'appliquer (latéral) est le moyen de aller.


0 commentaires

2
votes

Comme standin.wolf a mentionné sur Temps Tables, je peux vous montrer comment aller à propos de celui-ci

​​Utilisez votre requête d'origine et mettez-la dans une table Temp d'abord p>

select *, [USD Total Value] * 1.34 as [CDN Value] 

FROM #temp;


0 commentaires

2
votes

Un de mes favoris utiliserait le CTE. Le seul inconvénient qu'il ne peut pas être utilisé de manière récursive xxx pré>

puis utilisez le CTE P>

select *, [USD Total Value] * 1.34 as [CDN Value] 

FROM CTE;


0 commentaires