J'écris une requête, qui utilise SubQuery pour get un résultat.
Au lieu de réécrire la sous-requête à chaque fois, je veux utiliser la même valeur de sortie de la colonne 1 que l'input d'une autre colonne pour le calcul ultérieur.
Point 1: Pouvons-nous utiliser n'importe quelle variable pour save la valeur et utiliser la même chose pour une autre colonne.
Exemple de code attendu:
SELECT COLUMN1 ,CASE WHEN (SELECT CancelDate FROM TABLE3 WHERE EXPR....) <> '' THEN 'Cancel' ELSE 'New' END AS **TransactionType** ,COLUMN2 ,CASE **TransactionType** WHEN 'Cancel' THEN EXPR 1.... CASE **TransactionType** WHEN 'New' THEN EXPR 2 .... END AS CALCOLUMN2 FROM TABLE1 JOIN TABLE2 ....
Eh bien, tu ne peux pas. Il y a des moyens de réaliser ce que vous voulez:
A.) utilisant la sous-requête
SELECT Column1, TransactionType, CASE TransactionType WHEN 'Cancel' THEN EXPR 1.... CASE TransactionType WHEN 'New' THEN EXPR 2 .... END AS CALCOLUMN2 FROM ( SELECT COLUMN1 ,CASE WHEN (SELECT CancelDate FROM TABLE3 WHERE EXPR....) <> '' THEN 'Cancel' ELSE 'New' END AS **TransactionType** FROM ..... ) ...
B.) en utilisant l'expression elle-même
SELECT COLUMN1 ,CASE WHEN (SELECT CancelDate FROM TABLE3 WHERE EXPR....) <> '' THEN 'Cancel' ELSE 'New' END AS TransactionType ,COLUMN2 ,CASE (CASE WHEN (SELECT CancelDate FROM TABLE3 WHERE EXPR....) <> '' THEN 'Cancel' ELSE 'New' END) WHEN 'Cancel' THEN EXPR 1.... CASE (CASE WHEN (SELECT CancelDate FROM TABLE3 WHERE EXPR....) <> '' THEN 'Cancel' ELSE 'New' END) WHEN 'New' THEN EXPR 2 .... END AS CALCOLUMN2 FROM TABLE1 JOIN TABLE2 ....