Forum Użytkownikow Subiekt GT

InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: peiro w Luty 05, 2019, 15:11:44

Tytuł: Jak mogę przeliczyć datę na dni?
Wiadomość wysłana 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
Tytuł: Odp: Jak mogę przeliczyć datę na dni?
Wiadomość wysłana przez: birds22 w Luty 05, 2019, 15:16:20
Wygeneruj sobie tabele z datami (nawet wirtualna), ogranicz kontrolka {DR:}, wylicz min i max oraz różnicę.
Tytuł: Odp: Jak mogę przeliczyć datę na dni?
Wiadomość wysłana przez: candy w Luty 05, 2019, 15:21:27
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ś.
Tytuł: Odp: Jak mogę przeliczyć datę na dni?
Wiadomość wysłana przez: peiro w Luty 05, 2019, 15:40:03
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.
Tytuł: Odp: Jak mogę przeliczyć datę na dni?
Wiadomość wysłana przez: birds22 w Luty 05, 2019, 16:01:37
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
Tytuł: Odp: Jak mogę przeliczyć datę na dni?
Wiadomość wysłana przez: peiro w Luty 06, 2019, 10:09:57
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
 :(
Tytuł: Odp: Jak mogę przeliczyć datę na dni?
Wiadomość wysłana przez: birds22 w Luty 06, 2019, 10:23:23
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ń

Tytuł: Odp: Jak mogę przeliczyć datę na dni?
Wiadomość wysłana przez: peiro w Luty 06, 2019, 11:14:40
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.
Tytuł: Odp: Jak mogę przeliczyć datę na dni?
Wiadomość wysłana przez: yemet w Luty 06, 2019, 11:27:40
Bez obejrzenia całości zapytania to możemy sobie tylko zgadywać co jest nie tak.
Tytuł: Odp: Jak mogę przeliczyć datę na dni?
Wiadomość wysłana przez: peiro w Luty 07, 2019, 13:45:55
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