2010-05-20 7 views

Répondre

3

Vous ne pouvez pas mélanger la sélection de colonnes et les affectations de variables dans une requête.

Si vous sélectionnez le total dans une variable:

SELECT @X = ColumnA*.25 + ColumnB*2.5, 
     @Y = ColumnA*.5 + ColumnC*1.33, 
     @TOTAL = @X + @Y 
FROM SomeTable 

, alors oui, @total seront attribuées après @x et @y sont calculées.

+0

Mais en utilisant une variable totale fera disparaître le total de la sortie. Ma requête a beaucoup plus de colonnes, de jointures. –

+0

@aseem: encore une fois, vous ne pouvez pas mélanger les affectations de variables et les sorties de colonnes. Vous devriez soit retourner tout ou assigner tout, mais pas les deux. Votre requête d'origine ne sera même pas compilée. – Quassnoi

+0

Oui ... Ce n'est pas compiler. J'ai laissé tomber les variables locales. Merci. –

2

Si vous avez l'intention de retourner un ensemble de résultats, je ne pense pas que cela fonctionnera. Il est préférable d'écrire cette manière portable:

SELECT X, Y, X + Y AS TOTAL 
    FROM (SELECT ColumnA*0.25 + ColumnB*2.5 AS X, 
       ColumnA*0.5 + ColumnC*1.33 AS Y, 
      FROM SomeTable) xxx 
Questions connexes