[ west_herc @ 12.01.2007. 13:06 ] @
Imam još jedan problem :) i vazda ja sa nekim problemom

Sljedeći pod upit vraća sadašnji mjesec tj tekući i sa nečim ga uspoređujem

SELECT DISTINCT nešto1, nešto2
FROM tablica1
WHERE (DATEPART(month, datum_tekući) =
(SELECT DISTINCT DATEPART(month, GETDATE()) AS Expr1
FROM tablica1 AS Expr2))
GROUP BY nešto1

MENI TREBA PROŠLI MJESEC, ali kad stavim -1 onda mi ako je prvi mjesec vrati nulu, a trebao bi 12.
[ Hrvoje Balažinec @ 12.01.2007. 13:38 ] @
Dal si probao u pod upitu umjesto DATEPART upotrijebiti DATEADD:

Code:

SELECT DISTINCT nešto1, nešto2
FROM tablica1
WHERE (DATEPART(month, datum_tekući) =
(SELECT DISTINCT DATEADD(month, -1, GETDATE()) AS Expr1
FROM tablica1 AS Expr2))
GROUP BY nešto1


jer sad 01 mjesec vraca na 12.
[ logic_rabbit @ 12.01.2007. 13:53 ] @
A umesto one sintakse za tekuci mesec koristi
SELECT MONTH('2006-01-01')
i ona ti vraca mesec.
[ west_herc @ 12.01.2007. 14:19 ] @
Da jeste ali nakon toga ako mi treba prošli mjesec vrati 0 ako je tekući prvi mjesec
[ west_herc @ 12.01.2007. 14:46 ] @
Kolega BLAŽINEC, neradi ovo. error
[ logic_rabbit @ 12.01.2007. 14:48 ] @
Probaj DATEDIFF funkciju izmedju 2 datuma.
[ DarkMan @ 12.01.2007. 14:57 ] @
Citat:
west_herc: Imam još jedan problem :) i vazda ja sa nekim problemom

Sljedeći pod upit vraća sadašnji mjesec tj tekući i sa nečim ga uspoređujem

SELECT DISTINCT nešto1, nešto2
FROM tablica1
WHERE (DATEPART(month, datum_tekući) =
(SELECT DISTINCT DATEPART(month, GETDATE()) AS Expr1
FROM tablica1 AS Expr2))
GROUP BY nešto1

MENI TREBA PROŠLI MJESEC, ali kad stavim -1 onda mi ako je prvi mjesec vrati nulu, a trebao bi 12.



Onaj ugnjezdeni select distinct ti je u ovom kontekstu suvisan (ne vuces ni jedan podatak iz tabele tablica1)
Ako zelis da vratis sve record-e iz prethodnog meseca mozes na sledeci nacin:
Code:

SELECT DISTINCT nešto1, nešto2
FROM         tablica1
WHERE   
where convert(char(7), datum_tekući, 120) = convert(char(7), dateadd(month, -1, getdate()), 120)

convert(char(7), datum_tekući, 120) - vraca godinu i mesec iz tekuceg datuma u formatu 'GGGG-MM'
convert(char(7), dateadd(month, -1, getdate()), 120) - vraca prethodni mesec u formatu 'GGGG-MM'
[ west_herc @ 12.01.2007. 14:57 ] @
Da ali to je samo kompliciranije odrediti početak i kraj mjeseca i to svakog. Mislim da se samo vše i više petljam
[ west_herc @ 12.01.2007. 15:16 ] @
Evo ga drugovi, ja sam rješio na ovaj način:

Code:

SELECT DISTINCT nešto1, nešto2, nešto3
FROM         tablica
WHERE     (DATEPART(month, moj_datum) =
                          (SELECT DISTINCT DATEPART(month, DATEADD(month, - 1, GETDATE())) AS Expr1
                            FROM          tablica AS Expr2))
GROUP BY nešto1, nešto2, nešto3


Ipak hvala svima još jednom na pomoći

[ DarkMan @ 12.01.2007. 15:19 ] @
Citat:
west_herc: Evo ga drugovi, ja sam rješio na ovaj način:

Code:

SELECT DISTINCT nešto1, nešto2, nešto3
FROM         tablica
WHERE     (DATEPART(month, moj_datum) =
                          (SELECT DISTINCT DATEPART(month, DATEADD(month, - 1, GETDATE())) AS Expr1
                            FROM          tablica AS Expr2))
GROUP BY nešto1, nešto2, nešto3


Samo obrati paznju da poredis samo mesece bez godina, sto znaci da ako imas podatke iz prethodnih godina da ce ti pokupiti i njih.

[ west_herc @ 12.01.2007. 16:47 ] @
OK, kod mene se samo mjeseci poređuju. Mislim ima milion načina da se ovo uradi. Bolji mi je način od DarkMana ali neda mi se sad prepravljat.