Crystal Reports - liczba opakowań

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

Moderator: mikey

Kris86
Posty: 134
Rejestracja: 09 wrz 2021, 18:27
Rola: Administrator CDN XL
Wersja: 2019

Re: Crystal Reports - liczba opakowań

Post autor: Kris86 »

praiser pisze:
10 cze 2022, 11:20
zrób joina z warunkiem najniższego przelicznika indeksu

JOIN CDN.TwrJm ON Twr_GIDNumer=TwJ_TwrNumer and Twj_PrzeliczL = (select min(Twj_PrzeliczL) from CDN.TwrJm WHERE Twj_TwrNumer=Twr_GidNumer)
Możesz mi podesłać całe zapytanie łącznie z SELECT na początku.
Bo nie wiem jakie pole będzie zwracane. Wyrzuca mi błąd w ekspercie bazy danych.
Dzięki

Awatar użytkownika
praiser
Posty: 685
Rejestracja: 02 lip 2014, 12:22
Rola: Handlowiec CDN XL
Wersja: 2023

Re: Crystal Reports - liczba opakowań

Post autor: praiser »

select Tre_Ilosc*TwJ_PrzeliczM/TwJ_PrzeliczL as [JP] from CDN.TraElem
JOIN CDN.TwrKarty on Twr_GidNumer = TrE_TwrNumer
JOIN CDN.TwrJm ON Twr_GIDNumer=TwJ_TwrNumer and Twj_PrzeliczL = (select min(Twj_PrzeliczL) from CDN.TwrJm WHERE Twj_TwrNumer=Twr_GidNumer)
where .......

przy założeniu , że wartość Twj_PrzeliczL dla każdej z jednostek jest unikalna
inaczej trzeba jeszcze rozszerzyć warunek o np. TwJ_JmZ='KARTON'
--------------------------------
Pozdrawiam
WW

Kris86
Posty: 134
Rejestracja: 09 wrz 2021, 18:27
Rola: Administrator CDN XL
Wersja: 2019

Re: Crystal Reports - liczba opakowań

Post autor: Kris86 »

praiser pisze:
10 cze 2022, 12:29
select Tre_Ilosc*TwJ_PrzeliczM/TwJ_PrzeliczL as [JP] from CDN.TraElem
JOIN CDN.TwrKarty on Twr_GidNumer = TrE_TwrNumer
JOIN CDN.TwrJm ON Twr_GIDNumer=TwJ_TwrNumer and Twj_PrzeliczL = (select min(Twj_PrzeliczL) from CDN.TwrJm WHERE Twj_TwrNumer=Twr_GidNumer)
where .......

przy założeniu , że wartość Twj_PrzeliczL dla każdej z jednostek jest unikalna
inaczej trzeba jeszcze rozszerzyć warunek o np. TwJ_JmZ='KARTON'
Rozumiem że chodzi ci o sytuację, u mnie towary:
HAK1:Twj_PrzeliczL=5szt -> TwJ_JmZ='KARTON'
HAK2:Twj_PrzeliczL=2szt -> TwJ_JmZ='KARTON'
HAK3:Twj_PrzeliczL=8szt -> TwJ_JmZ='KARTON'
to wtedy kod będzie wyglądał następująco:
select Tre_Ilosc*TwJ_PrzeliczM/TwJ_PrzeliczL as [JP] from CDN.TraElem
JOIN CDN.TwrKarty on Twr_GidNumer = TrE_TwrNumer
JOIN CDN.TwrJm ON Twr_GIDNumer=TwJ_TwrNumer and Twj_PrzeliczL = (select min(Twj_PrzeliczL) from CDN.TwrJm WHERE Twj_TwrNumer=Twr_GidNumer)
where TwJ_JmZ='KARTON'

Czy inaczej?

Awatar użytkownika
praiser
Posty: 685
Rejestracja: 02 lip 2014, 12:22
Rola: Handlowiec CDN XL
Wersja: 2023

Re: Crystal Reports - liczba opakowań

Post autor: praiser »

Chyba nie da się dodać tej samej jednostki do pojedynczego indeksu więcej niż raz. Szukanie minimalnego przelicznika miało by sens, jeżeli indeks miałby na przykład

'PALETA' = L100/M1
'KARTON' = L50/M1
'OPAKOWANIE' = L33/M2

taki select wybierze zawsze 'OPAKOWANIE' jako najniższy przelicznik L. Zawężanie warunku do nazwy miało by sens gdyby była taka sytuacja w której nie ma najniższej wartości

'PALETA' = L100/M1
'KARTON' = L33/M1
'OPAKOWANIE' = L33/M2

wtedy darować sobie można szukanie min() a po prostu użyć

select Tre_Ilosc*TwJ_PrzeliczM/TwJ_PrzeliczL as [JP] from CDN.TraElem
JOIN CDN.TwrKarty on Twr_GidNumer = TrE_TwrNumer
JOIN CDN.TwrJm ON Twr_GIDNumer=TwJ_TwrNumer and Twj_JmZ = 'KARTON'
WHERE (gid transakcji)
--------------------------------
Pozdrawiam
WW

Kris86
Posty: 134
Rejestracja: 09 wrz 2021, 18:27
Rola: Administrator CDN XL
Wersja: 2019

Re: Crystal Reports - liczba opakowań

Post autor: Kris86 »

praiser pisze:
10 cze 2022, 13:24
Chyba nie da się dodać tej samej jednostki do pojedynczego indeksu więcej niż raz. Szukanie minimalnego przelicznika miało by sens, jeżeli indeks miałby na przykład

'PALETA' = L100/M1
'KARTON' = L50/M1
'OPAKOWANIE' = L33/M2

taki select wybierze zawsze 'OPAKOWANIE' jako najniższy przelicznik L. Zawężanie warunku do nazwy miało by sens gdyby była taka sytuacja w której nie ma najniższej wartości

'PALETA' = L100/M1
'KARTON' = L33/M1
'OPAKOWANIE' = L33/M2

wtedy darować sobie można szukanie min() a po prostu użyć

select Tre_Ilosc*TwJ_PrzeliczM/TwJ_PrzeliczL as [JP] from CDN.TraElem
JOIN CDN.TwrKarty on Twr_GidNumer = TrE_TwrNumer
JOIN CDN.TwrJm ON Twr_GIDNumer=TwJ_TwrNumer and Twj_JmZ = 'KARTON'
WHERE (gid transakcji)
Zastosowałem
select Tre_Ilosc*TwJ_PrzeliczM/TwJ_PrzeliczL as [JP] from CDN.TraElem
JOIN CDN.TwrKarty on Twr_GidNumer = TrE_TwrNumer
JOIN CDN.TwrJm ON Twr_GIDNumer=TwJ_TwrNumer and Twj_JmZ = 'KARTON'

ale w samym XL przy wywołaniu wydruku mam błąd.
Znalazłem informację że może być to problem na łączach
https://www.itsupportguides.com/knowled ... ot-change/
Załączniki
2022-06-10 at 15-06-04.png
2022-06-10 at 15-06-04.png (5.23 KiB) Przejrzano 1044 razy
2022-06-10 at 14-49-56.png
2022-06-10 at 14-49-56.png (4.87 KiB) Przejrzano 1049 razy
2022-06-10 at 12-54-50.png
2022-06-10 at 12-54-50.png (7.91 KiB) Przejrzano 1049 razy

Kris86
Posty: 134
Rejestracja: 09 wrz 2021, 18:27
Rola: Administrator CDN XL
Wersja: 2019

Re: Crystal Reports - liczba opakowań

Post autor: Kris86 »

Jakiś pomysł na te łącza ?

ODPOWIEDZ