Witam, chciałbym kolumnę na liście WM z zawartością TrE_cecha z tabeli cdn.traelem.
mój kod wygląda jak poniżej. Błąd się nie pojawia ale tez niestety nie pokazuje żadnego wyniku.
moglibyście pomóc mi skorygować kod?
select TOP 1 TrE_Cecha cecha
from cdn.traelem
join cdn.tranag on TrE_GIDNumer=TrN_GIDNumer AND TrE_GIDTyp=TrN_GIDTyp
JOIN CDN.MaGNag on TrN_GIDTyp=MaN_ZrdTyp AND TrN_GIDNumer=MaN_ZrdNumer
JOIN CDN.MagElem ON MaN_GIDNumer=MaE_GIDNumer
where {filtrsql}
Czemu akurat z TraElem a nie MagElem ?
Tre_Cecha może nie istnieć dla Wm nie przekształconych do dokumentu handlowego.
Dodatkowo takie rozwiązanie (top1) będzie skuteczne dla dokumentów z jednym elementem.
Właśnie chodzi o to żeby wyłapać takie puste rekordy.
Myślałem, że top 1 wstawia się gdy chcemy wyświetlić pierwszy rekord z puli rekordów.
Próbowałem z top 1 i bez tego oznaczenia.
Jeżeli chcesz wyłapać WM generowane z ZS ale nie przekształcone do transakcji to może lepiej filtrem ?
MaN_ZrdTyp = 960
albo WM z ręki nie przekształcone do transakcji
MaN_ZrdTyp = 0 and MaN_Stan < 6
Co chciałbyś konkretnie osiągnąć ?
Czysto teoretycznie joiny porobiłeś dobre (choć tranag mógłbyś pominąć, magelem też Ci chyba niepotrzebne - zapytanie będzie lżejsze). Jak są jakieś cechy na elementach to zweryfikuj sobie zapytanie podstawiając jeden gidnumer. Przy pobieraniu TOP 1 pobiera Ci jeden rekord, może akurat na tym elemencie nie ma cechy ??
Do wyświetlenie wszystkich cech w kolumnie na liście dokumentów powinieneś użyć FOR XML PATH, gdzie Ci po przecinku wstawi cechy. Jeżeli chcesz tylko wiedzieć czy są te cechy czy ich nie ma, można użyć IF EXISTS.