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
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'
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?
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
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
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)
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
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
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 (5.23 KiB) Przejrzano 1045 razy
2022-06-10 at 14-49-56.png (4.87 KiB) Przejrzano 1050 razy
2022-06-10 at 12-54-50.png (7.91 KiB) Przejrzano 1050 razy