Strona 1 z 2

Filtr kontrahenci wg daty karty

: 27 lip 2011, 13:56
autor: cmo
Witam,

Chciałbym wyświetlić na liście kontrahentów tylko tych, których karty zostały założone w podanym przedziale czasowym. Próbowałem stworzyć filtr z wykorzystaniem Knt_DataUtworzenia, ale niestety nie wyświetla poprawnie.

Proszę o pomoc.

Re: Filtr kontrahenci wg daty karty

: 27 lip 2011, 14:38
autor: wacek
Taka mała podpowiedź:

Kod: Zaznacz cały

select
	[1]=1
	, knt_akronim as Akronim
	, dateadd(second,knt_datautworzenia,'1990-01-01') as Kiedy
	, ope_nazwisko as Kto
from cdn.kntkarty
join cdn.opekarty on knt_opetypm=ope_gidtyp and knt_openumerm=ope_gidnumer
where knt_datautworzenia<>0 and (datediff(second,convert(datetime,'1990-01-01',120),getdate())-knt_datautworzenia)<86400

Re: Filtr kontrahenci wg daty karty

: 27 lip 2011, 15:33
autor: cmo
Dziękuję. Rozumiem, że mogę to jako wykres podpiąć.

Wpisałem zakres dat 1.04.-30.06.2011 i w wynikach pokazuje rok 2031. Co robię nie tak?

Re: Filtr kontrahenci wg daty karty

: 27 lip 2011, 18:08
autor: wacek
cmo pisze:Wpisałem zakres dat 1.04.-30.06.2011
gdzie dokładnie?

cmo pisze:w wynikach pokazuje rok 2031
w jakich wynikach?

cmo pisze:Co robię nie tak?
pewnie to:
cmo pisze:Wpisałem zakres dat 1.04.-30.06.2011 i w wynikach pokazuje rok 2031.
Proszę pokazać co zostało zrobione, coś pewnie poradzimy.

Ps.
Podpowiedź 2:
knt_datautworzenia = liczba sekund od 1990-01-01

Re: Filtr kontrahenci wg daty karty

: 04 sie 2011, 10:24
autor: cmo
Dziękuję za odpowiedź.

Całość podpiąłem jako wykres na bazie kontrahentów, ponieważ gdy robiłem to jako filtr otrzymywałem błąd, że to nie składnia SQL.
Daty modyfikowałem bezpośrednio w treści skryptu.

Re: Filtr kontrahenci wg daty karty

: 04 sie 2011, 12:15
autor: wacek
cmo pisze:Całość podpiąłem jako wykres na bazie kontrahentów
bo to jest wykres
cmo pisze:ponieważ gdy robiłem to jako filtr otrzymywałem błąd, że to nie składnia SQL.
bo to nie jest składnia filtra
cmo pisze:Daty modyfikowałem bezpośrednio w treści skryptu.
jakie daty? 1990-01-01 to jest stała data potrzebna przy funkcji dateadd, convert i datediff, a nie po to by ją zmieniać.

Podany przykład pokazuje kontrahentów dodanych w ciągu ostatnich 24godzin licząc od chwili jego wywołania. Podana w kodzie liczba 86400 jest liczbą sekund czyli:
86400 sek / 60 = 1440 min / 60 = 24 h.

A co do filtra to chyba pozostaje tylko dać gotowca:

Kod: Zaznacz cały

@PAR ?@D17|Data_od|&Data_od:REG={DateClwFirstDay('m')} @? PAR@
@PAR ?@D17|Data_do|&Data_do:REG={DateClwLastDay('m')} @? PAR@
knt_datautworzenia<>0 and datediff(d,'18001228',dateadd(s,knt_datautworzenia,'19900101')) between ??Data_od and ??Data_do

Re: Filtr kontrahenci wg daty karty

: 04 sie 2011, 12:43
autor: cmo
Dziękuję, wszystko już jasne:)

Re: Filtr kontrahenci wg daty karty

: 04 sie 2011, 14:36
autor: cmo
A gdybym jeszcze chciał dodać do tego filtra parametr wybór akwizytora?

Re: Filtr kontrahenci wg daty karty

: 04 sie 2011, 16:22
autor: wacek
Akwizytor jest z listy kontrahentów czy pracowników?

ps. opcja szukaj nie boli :D
http://cdn.3lance.pl/viewtopic.php?f=13 ... ytor#p3047

Re: Filtr kontrahenci wg daty karty

: 04 sie 2011, 16:48
autor: cmo
Dzięki:)

A jak połączyć te 2 filtry? :)