Strona 1 z 1

Dodatkowa kolumna na liście ZS i ZW

: 26 maja 2023, 09:02
autor: VoYecK
Dzień dobry, bardzo proszę o zapytanie SQL abym mógł sobie na liście ZS i ZW dodać kolumnę, w której będzie widnieć zlecenie produkcyjne ZP, które zostało wystawione do danego zamówienia ZS czy tez ZW.

P.S. Mój SQL to MS SQL Server 2014

Re: Dodatkowa kolumna na liście ZS i ZW

: 26 maja 2023, 20:25
autor: taszek
Dostałeś tutaj kolumnę:
praiser pisze:
24 maja 2023, 09:40
Z funkcją STUFF

Kod: Zaznacz cały

SELECT DISTINCT src.[Dok] as [Zamówienia] from (
SELECT
    [Dok] = STUFF(
                 (SELECT '; ' + CDN.NazwaObiektu(ZaN_GIDTyp, ZaN_GIDNumer,0,2)
				 FROM CDN.ZamNag
				JOIN CDN.ZamElem ON ZaE_GIDTyp = ZaN_GIDTyp AND ZaE_GIDNumer = ZaN_GIDNumer
				JOIN CDN.ZamZamLinki ON ZaE_GIDTyp = ZZL_ZSGidTyp AND ZaE_GIDNumer = ZZL_ZSGidNumer AND ZaE_GIDLp = ZZL_ZSGidLp
				JOIN CDN.ProdZlecElem ON PZE_Id = ZZL_ZZGidNumer AND ZZL_ZZGIDTyp = 14343
				JOIN CDN.ProdZlecenia  ON PZE_Zlecenie = PZL_Id
				WHERE {FiltrSQL}
				GROUP BY ZaN_GIDTyp, ZaN_GIDNumer
				 FOR XML PATH ('')
				 )
				 , 1, 1, ''
               )
		) src
Zadziałała również na liście ZS będzie bo masz w kodzie tabelę CDN.ZamNag

Re: Dodatkowa kolumna na liście ZS i ZW

: 29 maja 2023, 12:17
autor: VoYecK
Tak dostałem i działa dobrze. Ale teraz potrzebuję zobaczyć czy jest wystawione ZP do danego ZS/ZW w nowej kolumnie na liście ZS/ZW.

Obrazek

Wspomniane wcześnie zapytanie pokazuje ZS/ZW w nowej kolumnie, więc informacje się powielają

Obrazek

Re: Dodatkowa kolumna na liście ZS i ZW

: 29 maja 2023, 12:26
autor: praiser
Ta funkcja

CDN.NazwaObiektu(ZaN_GIDTyp, ZaN_GIDNumer,0,2)

wyświetla pełny nr dokumentu na podstawie gidtyp i gidnumer. w tym przypadku z tabeli ZamNag

musisz tu zamienić typ i numer z tabeli która cię interesuje i istnieje w twoim zapytaniu.

w tym przypadku to chyba: CDN.NazwaObiektu(14343, PZL_Numer, 0,2)

Re: Dodatkowa kolumna na liście ZS i ZW

: 27 lip 2023, 13:18
autor: VoYecK
Dzień dobry, odświeżę temat. Ktoś wspomoże zapytaniem odnośnie mojej prośby. Powyższe uwagi dużo mi nie mówią.

Re: Dodatkowa kolumna na liście ZS i ZW

: 08 gru 2025, 12:57
autor: VoYecK
Odświeżę troszkę temat.

Mam takie zapytanie, które pokazuje mi numer ZP, który został wygenerowany do danego ZS, ZW na liście dokumentów ZS lub ZW.

select
'ZP-' +
CAST(PZL_Numer AS varchar(20)) + '/' +
CAST(PZL_Seria AS varchar(10)) + '/' +
CAST(PZL_Rok AS varchar(4)) + '/' +
RIGHT('00' + CAST(PZL_Miesiac AS varchar(2)), 2) AS [Numer Zlecenia ZP]
from cdn.ProdZlecenia
inner join cdn.ProdZlecElem on PZE_Zlecenie = PZL_Id
inner join cdn.ZamZamLinki on PZE_Id = ZZL_ZZGidNumer
inner join cdn.ZamNag on ZZL_ZSGidTyp = ZaN_GIDTyp
and ZZL_ZSGidNumer = ZaN_GIDNumer
where {filtrsql}



Jak to zapytanie zmodyfikować aby pokazywało kilka ZP-ków do danego ZS, ZW jeśli było do jednego zamówienia wygenerowane kila ZP-ków ?

Re: Dodatkowa kolumna na liście ZS i ZW

: 08 gru 2025, 13:56
autor: praiser

Kod: Zaznacz cały

SELECT DISTINCT src.[Numery zleceń ZP] 
FROM (
    SELECT
        [Numery Zleceń ZP] = STUFF(
            (SELECT '; ' + 'ZP-' + CAST(PZL_Numer AS varchar(20)) + '/' + 
                    CAST(PZL_Seria AS varchar(10)) + '/' + 
                    CAST(PZL_Rok AS varchar(4)) + '/' + 
                    RIGHT('00' + CAST(PZL_Miesiac AS varchar(2)), 2)
             FROM cdn.ProdZlecenia
             INNER JOIN cdn.ProdZlecElem ON PZE_Zlecenie = PZL_Id
             INNER JOIN cdn.ZamZamLinki ON PZE_Id = ZZL_ZZGidNumer
             INNER JOIN cdn.ZamNag ON ZZL_ZSGidTyp = ZaN_GIDTyp AND ZZL_ZSGidNumer = ZaN_GIDNumer
             WHERE {filtrsql}
             GROUP BY ZaN_GIDTyp, ZaN_GIDNumer
             FOR XML PATH('')
            ), 1, 1, ''
        )
) src

Re: Dodatkowa kolumna na liście ZS i ZW

: 09 gru 2025, 08:51
autor: VoYecK
Dzień dobry, wyskakuje taki błąd po zastosowaniu powyższego zapytania

"ERRORS;Użycie kolumny „cdn.ProdZlecenia.PZL_Numer” na liście wyboru jest nieprawidłowe, ponieważ ta kolumna nie jest zawarta w funkcji agregującej ani w klauzuli GROUP BY.;Użycie kolumny „cdn.ProdZlecenia.PZL_Seria” na liście wyboru jest nieprawidłowe, ponieważ ta kolumna nie jest zawarta w funkcji agregującej ani w klauzuli GROUP BY.;Użycie kolumny „cdn.ProdZlecenia.PZL_Rok” na liście wyboru jest nieprawidłowe, ponieważ ta kolumna nie jest zawarta w funkcji agregującej ani w klauzuli GROUP BY.;Użycie kolumny „cdn.ProdZlecenia.PZL_Miesiac” na liście wyboru jest nieprawidłowe, ponieważ ta kolumna nie jest zawarta w funkcji agregującej ani w klauzuli GROUP BY."

Re: Dodatkowa kolumna na liście ZS i ZW

: 09 gru 2025, 09:51
autor: praiser
usuń grupowanie.

Re: Dodatkowa kolumna na liście ZS i ZW

: 09 gru 2025, 13:44
autor: VoYecK
Ja zrobiłem to tak i działa:

SQL ver 2014

Kod: Zaznacz cały

SELECT
    STUFF(
        (SELECT DISTINCT
                '; ZP-' + CAST(PZL_Numer AS varchar(20)) + '/' + 
                CAST(PZL_Seria AS varchar(10)) + '/' + 
                CAST(PZL_Rok AS varchar(4)) + '/' + 
                RIGHT('00' + CAST(PZL_Miesiac AS varchar(2)), 2)
         FROM cdn.ProdZlecenia
         INNER JOIN cdn.ProdZlecElem ON PZE_Zlecenie = PZL_Id
         INNER JOIN cdn.ZamZamLinki ON PZE_Id = ZZL_ZZGidNumer
         INNER JOIN cdn.ZamNag ON ZZL_ZSGidTyp = ZaN_GIDTyp AND ZZL_ZSGidNumer = ZaN_GIDNumer
         WHERE {filtrsql}
         FOR XML PATH(''), TYPE
        ).value('.', 'varchar(max)')
    ,1,2,'') AS [Numery zleceń ZP]

SQL ver 2017+

Kod: Zaznacz cały

SELECT 
    STRING_AGG(NumZP, '; ') 
        WITHIN GROUP (ORDER BY Rok, Miesiac, Numer) AS [Numery zleceń ZP]
FROM (
    SELECT DISTINCT
        NumZP = CAST(
                    'ZP-' 
                    + CAST(PZL_Numer AS varchar(20)) + '/'
                    + CAST(PZL_Seria AS varchar(10)) + '/'
                    + CAST(PZL_Rok AS varchar(4)) + '/'
                    + RIGHT('00' + CAST(PZL_Miesiac AS varchar(2)), 2)
                 AS varchar(max)),
        PZL_Rok AS Rok,
        PZL_Miesiac AS Miesiac,
        PZL_Numer AS Numer,
        ZaN_GIDTyp,
        ZaN_GIDNumer
    FROM cdn.ProdZlecenia
    INNER JOIN cdn.ProdZlecElem 
        ON PZE_Zlecenie = PZL_Id
    INNER JOIN cdn.ZamZamLinki 
        ON PZE_Id = ZZL_ZZGidNumer
    INNER JOIN cdn.ZamNag 
        ON ZZL_ZSGidTyp = ZaN_GIDTyp 
       AND ZZL_ZSGidNumer = ZaN_GIDNumer
    WHERE {filtrsql}
) AS src