Witam Ponownie,
mam dziwny problem. Chcę aktualizować pewne pola, które wcześniej wyliczam w select - używając funkcji Sum i Case jak poniżej. Problem polega na tym, że jak uruchomię sam Select zwraca mi poprawny wynik, ale jak już całą funkcję Update (gdzie ten sam select jest źródłem to już nie działą :| )
Kod który zapisze mi w kolumna1 złe dane (nie z sumuje) - reszta ok:
Update [GeneralPOinfo]
SET [kolumna1] = [sclip].[Wynik],
[kolumna2] = [sclip].[CosTam],
[kolumna3] = [sclip].[Wynik62]
FROM
[GeneralPOinfo] as gpi
INNER JOIN
(
SELECT Po, PoLine, SUM(CASE WHEN [warunek1] = N'0%' THEN 1 ELSE 0 END) AS Wynik, SUM(cosTam) AS CosTam,
SUM(CASE WHEN ([warunek2] = 0 or [warunek2] = 1) THEN 1 ELSE 0 END) As Wynik62
FROM mojaFajnaTablica
GROUP BY Po, PoLine
) as sclip
ON
[gpi].[POnumber] = [sclip].[Po]
AND
[gpi].[POnumberLine] = [sclip].[PoLine]
AND
([gpi].[PartialDelivery] = 'No' OR [gpi].[PartialDelivery] = 'Yes Finished')
Gdy uruchomię sam s\kod select, wyniki zwraca mi poprawne:
SELECT Po, PoLine, SUM(CASE WHEN [warunek1] = N'0%' THEN 1 ELSE 0 END) AS Wynik, SUM(cosTam) AS CosTam,
SUM(CASE WHEN ([warunek2] = 0 or [warunek2] = 1) THEN 1 ELSE 0 END) As Wynik62
FROM mojaFajnaTablica
GROUP BY Po, PoLine
Ja się pytam WTF ?! Proszę oświećcie mnie ... gdzie mi coś umyka .... mam wrażenie, że problem robi ten nieszczęsny % który jest w tekście warunku.
Pozdrawiam,
BB