mi spiego con un esempio che č meglio
scrivo una query dove calcolo due valori tramite formule complesse e lunghe
memorizzandoli AS V1 e AS V2
nella stessa query vorrei la differenza tra questi due valori V1 - V2 as DF
ora, in Access scrivo (semplificando) una cosa del genere:
SELECT TotalAmount1 AS V1, TotalAmount2 AS V2, [V1]-[V2] AS Diff
FROM TableOC;
e funziona
se faccio una cosa simile in SQL:
SELECT
CASE
when ... (un sacco di test)
end as PM,
CASE
when ... (una sporta di test)
end as CM,
[CM]-[PM] as Diff
ottengo l'errore:
Msg 207, Level 16, State 1, Line 151
Invalid column name 'CM'.
Msg 207, Level 16, State 1, Line 151
Invalid column name 'PM'.
se ripeto tutta la formula chilometrica per le due variabili funziona ma č
brutta da vedere e debuggare (se necessario)
CASE
when ... (un sacco di test)
end
-
CASE
when ... (una sporta di test)
end
as Diff
DOMANDA: devo per forza passare attraverso una tabella temporanea?
select
*
into #tmp
from
(
CASE
when ... (un sacco di test)
end as PM,
CASE
when ... (una sporta di test)
end as CM
) tmp
select PM, CM, PM-CM as Diff from #tmp
drop #tmp
oppure c'č un'altra strada?
Grazie
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
>>>>>
http://www.bb2002.it :) <<<<<
........... [ al lavoro ] ...........