Fantazyn
29.08.2011, 19:52:35
Witam,
Mam (w uproszczeniu) podobne zapytanie w bazie danych:
select A.Name
, A.Gender
, SA.SalePrice as Price
, case when SA.max(SalePrice) > 200
then SA.max(SalePrice)
else 200 end AS PriceType
from Animal A
i zależy mi, żeby pozbyć się podwójnego obliczenia SA.max(SalePrice), czy można w jakiś normalny sposób to osiągnać?
Pozdrawiam
dmateo
2.09.2011, 12:59:51
Moze wrzucenie wyniku zapytania do dodatkowej kolumny w tabeli tymczasowej i praca na niej.
clucky
22.09.2011, 16:22:19
Najprostszym sposobem jest zastosowanie podzapytania:
select Name,Gender,Price,
case when max > 200
then max else 200 end as PriceType
from
(select A.Name
, A.Gender
, A.SalePrice as Price
, SA.max(SalePrice) as max
from Animal A) as T
Tylko jest tu błąd przy SA.SalePrice - nie wiem czy dobrze poprawiłem (założyłem, że SA to jest nazwa schematu).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.