Problem z wykresem na liście dokumentów sprzedaży.

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

hornikm
Posty: 12
Rejestracja: 20 wrz 2009, 21:03
Rola: Administrator CDN XL
Wersja: 9.0 HR1

Problem z wykresem na liście dokumentów sprzedaży.

Post autor: hornikm »

Mamy spłodzone cosik takiego:

Kod: Zaznacz cały

@PAR ?@S20|knt_gl|&Kontrahent główny: @? @D( {??knt_gr <> '-brak-'}) PAR@
@PAR ?@LS20(SELECT     TGD_GIDNumer, TGD_Kod AS [Kod grupy]
FROM         CDN.TwrGrupyDom
WHERE     (TGD_GIDTyp < 0) AND (TGD_GrONumer = 0)
ORDER BY TGD_Kod|GENERICLOOKUP(, 0, 1))|twr_gr|&Grupa towarów:-brak- @? PAR@
@PAR ?@LS20(SELECT     KGD_GIDNumer, KGD_Kod as [Akronim grupy]
FROM         CDN.KntGrupyDom
WHERE     (KGD_GIDTyp < 0) AND (KGD_GrONumer = 0)
ORDER BY KGD_Kod|GENERICLOOKUP(Grupy kontrahentów, 0, 1))|knt_gr|G&rupa kontrahentów:-brak- @? PAR@
@PAR ?@S20|akronim|&Akronim:REG= @? PAR@

if ??akronim !=''

SELECT     [L.p]=1, 
	CDN.TwrKarty.Twr_Kod AS [Kod towaru], 
	CDN.TwrKarty.Twr_Nazwa AS [Nazwa towaru], 
	CDN.TwrKarty.Twr_Jm AS [j.m], 
	CDN.ciag_gr(CDN.TwrKarty.Twr_Kod) as [Grupa asort.], 
CAST(SUM(CDN.TraElem.TrE_Ilosc) AS DECIMAL(15, 2)) AS Ilosc, 
SUM(CDN.TraElem.TrE_KsiegowaNetto) AS Netto
	/*, CDN.ciag_knt_gr(CDN.KntKarty.Knt_Akronim) as [KntGrupa], 
	CDN.KntKarty.Knt_Akronim as [Akronim] */



FROM         
	CDN.TraNag t1 
	INNER JOIN CDN.TraElem ON t1.TrN_GIDTyp = CDN.TraElem.TrE_GIDTyp AND t1.TrN_GIDNumer = CDN.TraElem.TrE_GIDNumer 
        	inner join CDN.TraNag t2 on t1.TrN_SpiNumer = t2.TrN_GIDNumer AND t1.TrN_SpiTyp = t2.TrN_GIDTyp 
	inner join CDN.KntKarty ON t2.TrN_KntTyp = CDN.KntKarty.Knt_GIDTyp AND t2.TrN_KntNumer = CDN.KntKarty.Knt_GIDNumer  
                inner JOIN  CDN.TwrKarty ON CDN.TraElem.TrE_TwrTyp = CDN.TwrKarty.Twr_GIDTyp and CDN.TraElem.TrE_TwrNumer = CDN.TwrKarty.Twr_GIDNumer
                inner join CDN.PrcKarty PrcKarty on
                PrcKarty.Prc_GIDNumer=CDN.KntKarty.Knt_AkwNumer


WHERE     t2.TrN_GIDTyp IN (2033, 2041) and t2.TRN_TrNSeria in ('KT', 'T', 'ARP' , 'KARP') 
                   AND t2.TrN_Data2 BETWEEN ??data_od AND ??data_do
                   AND (CDN.TwrKarty.Twr_Kod like CASE ??_Qtwr_gr WHEN '-brak-' THEN ??twr + '%' ELSE '' END 
                             OR CDN.ciag_gr(CDN.TwrKarty.Twr_Kod) like 'Grupa Główna/' + rtrim(ltrim( (SELECT max(TwG_Kod) FROM CDN.TwrGrupy WHERE TwG_GIDTyp < 0 AND  TwG_GIDNumer= CASE ??_Qtwr_gr WHEN '-brak-' THEN -1 ELSE ??twr_gr END) )) + '%')

                   AND (CDN.KntKarty.Knt_Akronim like CASE ??_Qknt_gr WHEN '-brak-' THEN ??knt_gl + '%' ELSE '' END 
                             OR CDN.ciag_knt_gr(CDN.KntKarty.Knt_Akronim) like 'Grupa Główna/' + rtrim(ltrim( (SELECT max(KnG_Akronim) FROM CDN.KntGrupy WHERE KnG_GIDTyp < 0 AND  KnG_GIDNumer= CASE ??_Qknt_gr WHEN '-brak-' THEN -1 ELSE ??_Qknt_gr END) )) + '%')


and Prc_akronim like ??akronim

GROUP BY CDN.TwrKarty.Twr_Kod, CDN.TwrKarty.Twr_Nazwa, CDN.TwrKarty.Twr_Jm /*, CDN.KntKarty.Knt_Akronim */
 
ORDER BY CDN.TwrKarty.Twr_Kod

else

SELECT     [L.p]=1, 
	CDN.TwrKarty.Twr_Kod AS [Kod towaru], 
	CDN.TwrKarty.Twr_Nazwa AS [Nazwa towaru], 
	CDN.TwrKarty.Twr_Jm AS [j.m], 
	CDN.ciag_gr(CDN.TwrKarty.Twr_Kod) as [Grupa asort.], 
CAST(SUM(CDN.TraElem.TrE_Ilosc) AS DECIMAL(15, 2)) AS Ilosc, 
SUM(CDN.TraElem.TrE_KsiegowaNetto) AS Netto
	/*, CDN.ciag_knt_gr(CDN.KntKarty.Knt_Akronim) as [KntGrupa], 
	CDN.KntKarty.Knt_Akronim as [Akronim] */


FROM         
	CDN.TraNag t1 
	INNER JOIN CDN.TraElem ON t1.TrN_GIDTyp = CDN.TraElem.TrE_GIDTyp AND t1.TrN_GIDNumer = CDN.TraElem.TrE_GIDNumer 
        	inner join CDN.TraNag t2 on t1.TrN_SpiNumer = t2.TrN_GIDNumer AND t1.TrN_SpiTyp = t2.TrN_GIDTyp 
	inner join CDN.KntKarty ON t2.TrN_KntTyp = CDN.KntKarty.Knt_GIDTyp AND t2.TrN_KntNumer = CDN.KntKarty.Knt_GIDNumer  
                inner JOIN  CDN.TwrKarty ON CDN.TraElem.TrE_TwrTyp = CDN.TwrKarty.Twr_GIDTyp and CDN.TraElem.TrE_TwrNumer = CDN.TwrKarty.Twr_GIDNumer
            


WHERE     t2.TrN_GIDTyp IN (2033, 2041) and t2.TRN_TrNSeria in ('KT', 'T', 'ARP' , 'KARP') 
                   AND t2.TrN_Data2 BETWEEN ??data_od AND ??data_do
                   AND (CDN.TwrKarty.Twr_Kod like CASE ??_Qtwr_gr WHEN '-brak-' THEN ??twr + '%' ELSE '' END 
                             OR CDN.ciag_gr(CDN.TwrKarty.Twr_Kod) like 'Grupa Główna/' + rtrim(ltrim( (SELECT max(TwG_Kod) FROM CDN.TwrGrupy WHERE TwG_GIDTyp < 0 AND  TwG_GIDNumer= CASE ??_Qtwr_gr WHEN '-brak-' THEN -1 ELSE ??twr_gr END) )) + '%')

                   AND (CDN.KntKarty.Knt_Akronim like CASE ??_Qknt_gr WHEN '-brak-' THEN ??knt_gl + '%' ELSE '' END 
                             OR CDN.ciag_knt_gr(CDN.KntKarty.Knt_Akronim) like 'Grupa Główna/' + rtrim(ltrim( (SELECT max(KnG_Akronim) FROM CDN.KntGrupy WHERE KnG_GIDTyp < 0 AND  KnG_GIDNumer= CASE ??_Qknt_gr WHEN '-brak-' THEN -1 ELSE ??_Qknt_gr END) )) + '%')




GROUP BY CDN.TwrKarty.Twr_Kod, CDN.TwrKarty.Twr_Nazwa, CDN.TwrKarty.Twr_Jm /*, CDN.KntKarty.Knt_Akronim */
 
ORDER BY CDN.TwrKarty.Twr_Kod
Cudo nasze działało do wersji 9... od 10 się wiesza, i nic nie liczy profiler niestety nic nie pokazuje poza wysłaniem selecta, wykonanie samego selecta na bazie też nie daje efektu tylko cały czas mieli wykonanie bez zakończenia.
Zauważyłem że dzieje się tak po wybraniu grupy towaru lub kontrahentów.
Może wy macie jakiś pomysł gdzie jest błąd bo ja już nie wiem.

xtomi
Posty: 408
Rejestracja: 16 lut 2010, 21:24
Rola: Administrator CDN XL
Wersja: 10

Re: Problem z wykresem na liście dokumentów sprzedaży.

Post autor: xtomi »

Przepuść zapytanie przez execution plan,
zaczął bym poszukiwania od funkcji CDN.ciag_gr i CDN.ciag_knt_gr,
dobrze było by się zapoznać z dokumentem opisującym zmiany w strukturze bazy w wersji 10.

ODPOWIEDZ