2017-07-14 4 views
0

Quelqu'un peut-il me dire pourquoi cette simple commande ne fonctionnera pas dans mon studio SQL Server 2012 Express?SQL Server alias sans la clause FROM ne fonctionne pas - Invalid Nom de la colonne

SELECT 
    100 AS Price, 
    0.07 AS TaxRate, 
    Price * TaxRate AS TaxAmount, 
    Price + TaxAmount AS Total; 

Je reçois un message d'erreur:

Msg 207, niveau 16, état 1, ligne 3
nom de colonne non valide 'Prix'. Msg 207, niveau 16, état 1, ligne 3
Nom de colonne non valide 'TaxRate'. Msg 207, niveau 16, état 1, ligne 4
Nom de colonne non valide 'Prix'.

Msg 207, niveau 16, état 1, ligne 4
nom de colonne non valide « TaxAmount »

+0

où est votre table ??? SELECT 100 AS Prix, 0,07 AS TaxRate, Prix * TaxRate AS TaxAmount, Prix + TaxAmount AS Total à partir de TableName; – Nithin

+0

J'essaie spécifiquement de l'appeler sans table. Pas de clause FROM. Est-ce possible? – adamdesign

+0

non ce n'est pas possible – Nithin

Répondre

0

Vous pouvez trier de faire ce que vous essayez de faire en effectuant l'une des façons suivantes ...

--option 1... 
DECLARE 
    @Price MONEY = 100, 
    @TaxRate DECIMAL(9,2) = 0.07; 

SELECT 
    Price = @Price, 
    TaxRate = @TaxRate, 
    TaxAmount = @Price * @TaxRate, 
    Total = @Price + (@Price * @TaxRate); 

-- option 2... 
SELECT 
    ptr.Price, 
    ptr.TaxRate, 
    ta.TaxAmount, 
    t.Total 
FROM 
    (VALUES (CAST(100 AS MONEY), CAST(0.07 AS DECIMAL(9,2)))) ptr (Price, TaxRate) 
    CROSS APPLY (VALUES (ptr.Price * ptr.TaxRate)) ta (TaxAmount) 
    CROSS APPLY (VALUES (ptr.Price + ta.TaxAmount)) t (Total); 

HTH, Jason