Dla przykładu pokaże kilka zapytań napisanych przeze mnie ręcznie:
Faktura polska
select tn.TrN_TrNID, tn.TrN_NumerPelny, tn.TrN_Bufor from CDN.TraNag tn
left join CDN.Kontrahenci k on tn.TrN_PodID = k.Knt_KntId
where (k.Knt_KrajISO like 'PL' or k.Knt_KrajISO like '') and tn.TrN_TypDokumentu = 302 and tn.TrN_Bufor = 1 and tn.TrN_Korekta = 0 and TrN_TrNID > 203662
Faktura zagraniczna różni się, wiadomo, tylko tym:
where (k.Knt_KrajISO not like 'PL' and k.Knt_KrajISO not like '')
Korekta faktury
tn.TrN_Korekta = 1 --korekta ilości
tn.TrN_Korekta = 2 --korekta wartości
WZ polskie
where (k.Knt_KrajISO like 'PL' or k.Knt_KrajISO like '') and tn.TrN_TypDokumentu = 306
Dodatkowo mogą dojść do tego płatności. Powiadamia danego klienta mailem o niezapłaconym dokumencie:
select tn.TrN_TrNID, tn.TrN_NumerPelny, tn.TrN_Bufor from CDN.TraNag tn
left join CDN.BnkZdarzenia bz on tn.TrN_TrNID = bz.BZd_DokumentID
where tn.TrN_TypDokumentu = 302 and tn.TrN_Korekta = 0 and tn.TrN_Bufor = 0
and bz.BZd_DokumentTyp = 1
and datediff(d, GETDATE(), bz.BZd_Termin) = 1 and bz.BZd_Rozliczono = 1 and bz.BZd_Rozliczono2 = 1
#doklejam tutaj to co wpisałem wcześniej nie tam gdzie trzeba
Teoretycznie mam dwa wyjścia: 1. Opisać każdą kolumnę tak żeby użytkownik wiedział czego się tyczy, 2. Zrobić legendę gdzieś pod guzikiem za jakie dane konkretna kolumna odpowiada. Co za tym idzie? Muszę sprawdzać typ kolumny, aby dobrać odpowiednią opcję np.: string - equals, contains, starting with, datetime - equals, more than, less than itp itd, dalszy ciąg już znacie. Mamy sporo klientów, którzy korzystają z Optimy. Powiedzmy, że połowa z nich z tego skorzysta. Jest to wartę czasu?