Forum Użytkownikow Subiekt GT
InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: peiro w Luty 05, 2019, 15:11:44
-
Witam w zestawieniu sql, które piszę mam datę wpisywaną po znaczniku (dok_DataWyst BETWEEN {DR:W okresie:} ) i tu moje pytanie czy mogę wydobyć z niej ilość dni między datami od - do? z góry dzięki
-
Wygeneruj sobie tabele z datami (nawet wirtualna), ogranicz kontrolka {DR:}, wylicz min i max oraz różnicę.
-
Albo nie korzystaj z {DR} tylko z dwóch {D} i będziesz mógł policzyć to bezpośrednio.
Nie da się wtedy wybrać "z bieżącego miesiąca", tylko trzeba będzie wskazać początek i koniec, ale coś za coś.
-
Dziękuję za odpowiedź w 1 przypadku rozbija mi pozycję 1 towaru na kilka innych, 2 przypadek wydaje się w porządku ale nie wiem jak zsumować dni miedzy datami.
-
Dziękuję za odpowiedź w 1 przypadku rozbija mi pozycję 1 towaru na kilka innych,
Widocznie coś źle napisałeś
2 przypadek wydaje się w porządku ale nie wiem jak zsumować dni miedzy datami.
DATEDIFF
-
Okey idąc tym tokiem myślenia zrobiłem podzapytanie
( SELECT DATEDIFF(day,
(SELECT min(dok_DataWyst ) FROM vwDok4ZamGrid) ,
(SELECT max(dok_DataWyst ) FROM vwDok4ZamGrid))
WHERE (dok_DataWyst BETWEEN {D: Pokaż dokumenty z przedziału od:} AND {D: do})
) as Data
ale nie ważne co ustawię w dacie i tak liczy mi zawsze 266 czyli od początku do końca dokumentów nie uwzględniając daty
:(
-
Okey idąc tym tokiem myślenia zrobiłem podzapytanie
( SELECT DATEDIFF(day,
(SELECT min(dok_DataWyst ) FROM vwDok4ZamGrid) ,
(SELECT max(dok_DataWyst ) FROM vwDok4ZamGrid))
WHERE (dok_DataWyst BETWEEN {D: Pokaż dokumenty z przedziału od:} AND {D: do})
) as Data
ale nie ważne co ustawię w dacie i tak liczy mi zawsze 266 czyli od początku do końca dokumentów nie uwzględniając daty
:(
Tok myślenia może był dobry ale wykonanie słabe :)
Warunek musisz dać w podzapytaniach, albo jeszcze lepiej jak pozbędziesz się podzapytań
-
ok no to zrobiłem
to działa dla dokumentów z przedziału daty
( SELECT DATEDIFF(day,
(SELECT min(dok_DataWyst ) FROM vwDok4ZamGrid WHERE (dok_DataWyst BETWEEN {D: Pokaż dokumenty z przedziału od:} AND {D: do})) ,
(SELECT max(dok_DataWyst ) FROM vwDok4ZamGrid WHERE (dok_DataWyst BETWEEN {D: Pokaż dokumenty z przedziału od:} AND {D: do})))
) as Data
to działa dla samych dat
SELECT DATEDIFF(day,{D: Pokaż dokumenty z przedziału od:},{D: do}) as Data
ale czy jedno czy 2 tabela z datą rozwala mi towary dzieli je i z jednego towaru na kilka. Bez wyliczania daty działa ok.
-
Bez obejrzenia całości zapytania to możemy sobie tylko zgadywać co jest nie tak.
-
Dziękuję wszystkim za odpowedzi w złym miejscu miałem myślnik. Data działa poprzez kontrolę z 2 d :)
,DATEDIFF (day,{D: Pokaż dokumenty z przedziału od:},{D: do}) as Data