

Osoby na zakładce PŁATNOŚCI sprawdzają dane typu konto bankowe kwota i data i wstawiają ten atrybut
wraz z innym typu TAK/NIE aby oznaczyć że dana płatność jest sprawdzona.
Ten atrybut dodaje bieżącą datę czyli datę sprawdzenia - ponieważ osoby chcą sobie robić wydruk sprawdzonych płatności w danym dniu.
I teraz mam problem jak w oparciu o to zbudować na liście KSIĘGOWOŚĆ -> PŁATNOŚCI -> NIEROZLICZONE
filtr, który po podaniu zakresów dat (data początkowa i końcowa) wyfiltruje tylko te płatności, których ATRYBUT
Data sprawdzenia: będzie spełniony (zawiera się w przedziale dat)
W Management Studio taki SQL działa ale nie wiem czemu różne kombinację na liście filtrów nie chcą działąć ???
Chyba coś źle pobieram albo konwertuje ???
Kod: Zaznacz cały
SELECT
CDN.AS_AtrybutGida ('Data sprawdzenia:', TrP_GIDTyp, TrP_GIDFirma, TrP_GIDNumer, 63) as DataSPR,
CDN.AS_DateToTS ((CDN.AS_AtrybutGida ('Data sprawdzenia:', TrP_GIDTyp, TrP_GIDFirma, TrP_GIDNumer, 63)),0) as DataSPR2,
*
FROM CDN.TraPlat
where
TrP_GIDTyp=1521 AND TrP_GIDNumer=781695 AND TrP_GIDLp=1PS
Czemu taka składnia na filtrze nie działą ???
Kod: Zaznacz cały
CDN.AS_DateToTS ((CDN.AS_AtrybutGida ('Data sprawdzenia:', TrP_GIDTyp, TrP_GIDFirma, TrP_GIDNumer, 63)),0) = 76512Kod: Zaznacz cały
EXISTS
(
SELECT 1
from CDN.Atrybuty
where
CDN.AS_DateToTS(Atr_Wartosc,0) = @PAR ?@D17|DataSPR|&DataSPR:REG={Today()} @? PAR@
AND Atr_Obityp = TrP_GIDTyp
AND Atr_Obinumer = TrP_GIDNumer
)Kod: Zaznacz cały
CREATE Function [CDN].[AS_AtrybutGida] (@p_atrybut as char, @p_gidtyp as int, @p_gidfirma as int, @p_gidnumer as int, @p_atr_atkid as int)
returns varchar(100)
as
begin
declare @v_atrybut varchar(100)
Set @v_atrybut = ISNUll((
SELECT top 1 Atr_Wartosc
FROM CDN.Atrybuty
WHERE Atr_AtkId = @p_atr_atkid
AND Atr_Obityp = @p_gidtyp
AND Atr_Obifirma = @p_gidfirma
AND Atr_Obinumer = @p_gidnumer
), 0)
Return(@v_atrybut)
endKod: Zaznacz cały
CREATE FUNCTION [CDN].[AS_DateToTS]( @data datetime, @ists bit)
RETURNS INT
as
begin
IF (@ists=1)
RETURN DATEDIFF( ss,CONVERT(DATETIME,'19900101',11),@data )
RETURN DATEDIFF( dd,CONVERT(DATETIME,'18001228',11), @data )
end