Pytanie : GRUPA Skrzynka Oświadczenie

Koniecznie problem, ale I mieć pytanie regarding using SKRZYNKA oświadczenie w aggregating queries.

My querying być nie jednakowy…

SELECT SUMA (KOLA), SUMA (COLB),
CASE @MyVar
GDY (1) WTEDY 'XXX'< br/> GDY 2 WTEDY 'XXX'< br/> GDY 3 WTEDY 'XXX'< br/> GDY 4 WTEDY 'XXX'< br/>END JAKO COLC
FROM MyTable
GROUP BY
CASE @MyVar
GDY (1) WTEDY 'XXX'< br/> GDY 2 WTEDY 'XXX'< br/> GDY 3 WTEDY 'XXX'< br/> GDY 4 WTEDY 'XXX'< br/>END

… dokąd "XXX" być różny wartość według the skrzynka. Pytanie być, tam  być jakaś występ wpływ w the jakaś zapytanie ponieważ I the całkowity SKRZYNKA część the zapytanie w the grupa klauzula? Lub ono być lepszy the pierwszy część the zapytanie gdy CTE i wtedy grupa obok na COL 3? Jak comments.


WITH MyCTE (KOLA, COLB, COLC) AS
(
SELECT SUMA (KOLA), SUMA (COLB),
CASE @MyVar
GDY (1) WTEDY 'XXX'< br/> GDY 2 WTEDY 'XXX'< br/> GDY 3 WTEDY 'XXX'< br/> GDY 4 WTEDY 'XXX'< br/>END
FROM MyTable
)
SELECT KOLA, COLB, COLC OD MyCTE GRUPA COLC



Points dać dla najlepszy odpowiedź i jakaś inny pointer/porada/comments.

Odpowiedź : GRUPA Skrzynka Oświadczenie

Prawidłowo, ono musieć jakaś różnica, the optimizer być mądrze dosyć reuse wyrażenie.
Ale twój CTE pracować ten sposób - ono wciąż potrzebować the grupa obok w the CTE grupa, i ty biedak zyskiwać zyskiwać.

The doraźny widok patrzeć jak to:

wybrany suma (Kola), suma (ColB), MyVar od
(WYBRANY Kola, ColB,
 SKRZYNKA @MyVar
     GDY (1) WTEDY "XXX"
     GDY 2 WTEDY "XXX"
     GDY 3 WTEDY "XXX"
     GDY 4 WTEDY "XXX"
 KOŃCÓWKA MyVar
 OD MyTable) v
grupa MyVar

The CTE być the cte.
Inne rozwiązania  
 
programming4us programming4us