2010-07-21 9 views
10

Mam następujące zapytanie:zastąpić wartości zerowe w sql przegubu

SELECT * 
FROM Table1 
PIVOT 
(
    SUM(Value) 
    FOR [Period] IN ([06/1/2007],[07/1/2007]) 
) 
AS p 

Niektóre z wierszy zwracanych są nieważne, ale chcę je zastąpić 0.

Próbowałem SUM(ISNULL(Value,0)) as Val ale nie jest pracujący. (mówi nieprawidłowa składnia)

+0

Czy * dokładnie * co próbowałeś? Brakuje ')'. W rzeczywistości twoje pierwotne zapytanie wydaje się mieć dodatkowe ')'. –

+1

Zwykle pomaga, gdy "nie działa" jest wyjaśnione w użyteczny sposób. –

Odpowiedz

22

Ohh, użyłem ISNULL w niewłaściwym miejscu.

kwerendy powinien wyglądać następująco:

SELECT ID,ISNULL([06/1/2007],0), ISNULL([07/1/2007],0) 
FROM Table1 
PIVOT 
(
    SUM(Value) 
    FOR [Period] IN ([06/1/2007],[07/1/2007]) 
) 
AS p 
+1

Próbowałem także umieścić isnull w pivocie. Kiedy zobaczyłem twoją odpowiedź, czułem się naprawdę źle. – Paul

Powiązane problemy