SELECT null, 'Sposób odbioru', ISNULL (sw_Nazwa,'nieokreślono') FROM dok__Dokument LEFT JOIN pw_Dane ON dok_Id = pwd_IdObiektu AND pwd_TypObiektu IN (-2,-26,-37,-32,-33,-34,-8) LEFT JOIN dbo.sl_Wlasny ON pwd_Fk01=sw_id WHERE dok_Id={dok__Dokument.dok_Id} ---------------------------------------------------------------------------------------------------- adres dostawy SELECT NULL AS NrWiersza, 'AdresDostawy' AS Klucz, X.Wartosc FROM ( -- 1) Jesli dokument ma ustawiony konkretny adr_Id SELECT TOP 1 LTRIM(RTRIM( COALESCE(E.adr_Nazwa, '') + CASE WHEN LEN(COALESCE(E.adr_Nazwa, '')) > 0 THEN ', ' ELSE '' END + COALESCE(E.adr_Ulica, '') + ' ' + COALESCE(E.adr_NrDomu, '') + CASE WHEN LEN(COALESCE(E.adr_NrLokalu, '')) > 0 THEN '/' + E.adr_NrLokalu ELSE '' END + CASE WHEN LEN(COALESCE(E.adr_Kod, '')) > 0 THEN ', ' + E.adr_Kod ELSE '' END + CASE WHEN LEN(COALESCE(E.adr_Miejscowosc, '')) > 0 THEN ' ' + E.adr_Miejscowosc ELSE '' END )) AS Wartosc, 1 AS Priorytet FROM adr__Ewid E WHERE {dok__Dokument.dok_AdresDostawyId} IS NOT NULL AND E.adr_Id = {dok__Dokument.dok_AdresDostawyId} UNION ALL -- 2) Fallback: adres typu 11 dla platnika SELECT TOP 1 LTRIM(RTRIM( COALESCE(E.adr_Nazwa, '') + CASE WHEN LEN(COALESCE(E.adr_Nazwa, '')) > 0 THEN ', ' ELSE '' END + COALESCE(E.adr_Ulica, '') + ' ' + COALESCE(E.adr_NrDomu, '') + CASE WHEN LEN(COALESCE(E.adr_NrLokalu, '')) > 0 THEN '/' + E.adr_NrLokalu ELSE '' END + CASE WHEN LEN(COALESCE(E.adr_Kod, '')) > 0 THEN ', ' + E.adr_Kod ELSE '' END + CASE WHEN LEN(COALESCE(E.adr_Miejscowosc, '')) > 0 THEN ' ' + E.adr_Miejscowosc ELSE '' END )) AS Wartosc, 2 AS Priorytet FROM adr__Ewid E WHERE {dok__Dokument.dok_AdresDostawyId} IS NULL AND E.adr_IdObiektu = {dok__Dokument.dok_PlatnikId} AND E.adr_TypAdresu = 11 ) X ORDER BY X.Priorytet; ------------------------------------------------------------------------------------------------------ To działa W tabelce jest sposób odbioru i jako 2-gi wiersz adres dostawy, tylko musi być wskazany adres dostawy bo inaczej będzie błąd przy f-rze do KSeF SELECT null AS NrWiersza, 'Sposób odbioru' AS Klucz, ISNULL (sw_Nazwa,'nieokreślono') as Wartosc FROM dok__Dokument LEFT JOIN pw_Dane ON dok_Id = pwd_IdObiektu AND pwd_TypObiektu IN (-2,-26,-37,-32,-33,-34,-8) LEFT JOIN dbo.sl_Wlasny ON pwd_Fk01=sw_id WHERE dok_Id={dok__Dokument.dok_Id} UNION ALL SELECT NULL AS NrWiersza, 'Adres Dostawy' AS Klucz, X.Wartosc FROM ( -- 1) Jesli dokument ma ustawiony konkretny adr_Id SELECT TOP 1 LTRIM(RTRIM( COALESCE(E.adr_Nazwa, '') + CASE WHEN LEN(COALESCE(E.adr_Nazwa, '')) > 0 THEN ', ' ELSE '' END + COALESCE(E.adr_Ulica, '') + ' ' + COALESCE(E.adr_NrDomu, '') + CASE WHEN LEN(COALESCE(E.adr_NrLokalu, '')) > 0 THEN '/' + E.adr_NrLokalu ELSE '' END + CASE WHEN LEN(COALESCE(E.adr_Kod, '')) > 0 THEN ', ' + E.adr_Kod ELSE '' END + CASE WHEN LEN(COALESCE(E.adr_Miejscowosc, '')) > 0 THEN ' ' + E.adr_Miejscowosc ELSE '' END )) AS Wartosc, 1 AS Priorytet FROM adr__Ewid E WHERE {dok__Dokument.dok_AdresDostawyId} IS NOT NULL AND E.adr_Id = {dok__Dokument.dok_AdresDostawyId} ORDER BY Priorytet UNION ALL -- 2) Fallback: adres typu 11 dla platnika SELECT TOP 1 LTRIM(RTRIM( COALESCE(E.adr_Nazwa, '') + CASE WHEN LEN(COALESCE(E.adr_Nazwa, '')) > 0 THEN ', ' ELSE '' END + COALESCE(E.adr_Ulica, '') + ' ' + COALESCE(E.adr_NrDomu, '') + CASE WHEN LEN(COALESCE(E.adr_NrLokalu, '')) > 0 THEN '/' + E.adr_NrLokalu ELSE '' END + CASE WHEN LEN(COALESCE(E.adr_Kod, '')) > 0 THEN ', ' + E.adr_Kod ELSE '' END + CASE WHEN LEN(COALESCE(E.adr_Miejscowosc, '')) > 0 THEN ' ' + E.adr_Miejscowosc ELSE '' END )) AS Wartosc, 2 AS Priorytet FROM adr__Ewid E WHERE {dok__Dokument.dok_AdresDostawyId} IS NULL AND E.adr_IdObiektu = {dok__Dokument.dok_PlatnikId} AND E.adr_TypAdresu = 11 ORDER BY Priorytet ) X