konto usunięte

Temat: Problem z określeniem maksymalnej daty

Witam wszystkich,

męczę się dośc długo z określeniem maksymalnej daty w mojej kwerendzie crosstab więc postanowiłem zadać pytanie w grupie. Oto kod:

TRANSFORM Sum(Transact.ORD_QTY) AS SumOfORD_QTY
SELECT Transact.LAGERTEILENR
FROM Transact
WHERE (((Left([Transact].[ORD_DATE],6))<201311))
GROUP BY Transact.LAGERTEILENR
ORDER BY Transact.LAGERTEILENR
PIVOT Left([Transact].[ORD_DATE],6);

Chciałbym zastąpić "<201311", które jest wpisane na sztywno, warunkiem pokazującym maksymalna datę jaka jest w kolumnie [ORD_DATE] - 1 miesiąc, czyli własnie w tym przypadku <201311. Próbowałem użyć Max i Dmax ale bez sukcesu. Ktoś może pomóc? Dziekuje i pozdrawiam.
Artur B.

Artur B. St. specjalista,
Getin Leasing S.A.

Temat: Problem z określeniem maksymalnej daty

Zakładając , że [ORD_DATE] jest data xxxx-xx-xx lub xxxxxxxx
"<201311" zastąp tym <Mid(Replace(DateSerial(Year([Transact].[ORD_DATE]);Month([Transact].[ORD_DATE])-1;0);"-";"");1;6) .

konto usunięte

Temat: Problem z określeniem maksymalnej daty

Dzięki za odpowiedź. Dana jest w formacie xxxxxxxx ale niestety to numer. Co w takim przypadku?
Artur B.

Artur B. St. specjalista,
Getin Leasing S.A.

Temat: Problem z określeniem maksymalnej daty

TRANSFORM Sum(Transact.ORD_QTY) AS SumOfORD_QTY
SELECT Transact.LAGERTEILENR
FROM Transact
WHERE (((Transact.ORD_DATE)<Mid(DMax("[ORD_DATE]","[Transact]"),1,4) & (Month(DateSerial(Mid(DMax("[ORD_DATE]","[Transact]"),1,4),Mid(DMax("[ORD_DATE]","[Transact]"),5,2),Mid(DMax("[ORD_DATE]","[Transact]"),6,2)))-1)))
GROUP BY Transact.LAGERTEILENR
ORDER BY Transact.LAGERTEILENR
PIVOT Left([Transact].[ORD_DATE],6);

konto usunięte

Temat: Problem z określeniem maksymalnej daty

Działa super:) Zmieniłem 2 rzeczy:

WHERE (((Left([Transact].[ORD_DATE],6) bo inaczej nie było referencji

oraz warunek -1 zmieniłem na -0 bo "obcinał" jeden miesiąc za dużo ( max daną miałem 20131102 a kod agregował do 201309) Czy to jest ok?

Obecny kod:

TRANSFORM Sum(Transact.ORD_QTY) AS SumOfORD_QTY
SELECT Transact.LAGERTEILENR
FROM Transact
WHERE (((Left([Transact].[ORD_DATE],6))<Mid(DMax("[ORD_DATE]","[Transact]"),1,4) & (Month(DateSerial(Mid(DMax("[ORD_DATE]","[Transact]"),1,4),Mid(DMax("[ORD_DATE]","[Transact]"),5,2),Mid(DMax("[ORD_DATE]","[Transact]"),6,2)))-0)))
GROUP BY Transact.LAGERTEILENR
ORDER BY Transact.LAGERTEILENR
PIVOT Left([Transact].[ORD_DATE],6);

Dzięki za pomoc.

Następna dyskusja:

Zmiana formatu daty i .... ...




Wyślij zaproszenie do