Dodatkowa kolumna na liście ZS i ZW

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

Moderator: mikey

VoYecK
Posty: 151
Rejestracja: 26 paź 2016, 14:11
Rola: Użytkownik CDN XL
Wersja: 2023
Kontakt:

Dodatkowa kolumna na liście ZS i ZW

Post 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

taszek
Posty: 609
Rejestracja: 12 wrz 2012, 13:20
Rola: Administrator CDN XL
Wersja: 2016

Re: Dodatkowa kolumna na liście ZS i ZW

Post 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
Pozdrawiam
Wojtek Cyrklewicz

VoYecK
Posty: 151
Rejestracja: 26 paź 2016, 14:11
Rola: Użytkownik CDN XL
Wersja: 2023
Kontakt:

Re: Dodatkowa kolumna na liście ZS i ZW

Post 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

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

Re: Dodatkowa kolumna na liście ZS i ZW

Post 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)
--------------------------------
Pozdrawiam
WW

VoYecK
Posty: 151
Rejestracja: 26 paź 2016, 14:11
Rola: Użytkownik CDN XL
Wersja: 2023
Kontakt:

Re: Dodatkowa kolumna na liście ZS i ZW

Post 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ą.

VoYecK
Posty: 151
Rejestracja: 26 paź 2016, 14:11
Rola: Użytkownik CDN XL
Wersja: 2023
Kontakt:

Re: Dodatkowa kolumna na liście ZS i ZW

Post 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 ?

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

Re: Dodatkowa kolumna na liście ZS i ZW

Post 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
--------------------------------
Pozdrawiam
WW

VoYecK
Posty: 151
Rejestracja: 26 paź 2016, 14:11
Rola: Użytkownik CDN XL
Wersja: 2023
Kontakt:

Re: Dodatkowa kolumna na liście ZS i ZW

Post 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."

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

Re: Dodatkowa kolumna na liście ZS i ZW

Post autor: praiser »

usuń grupowanie.
--------------------------------
Pozdrawiam
WW

VoYecK
Posty: 151
Rejestracja: 26 paź 2016, 14:11
Rola: Użytkownik CDN XL
Wersja: 2023
Kontakt:

Re: Dodatkowa kolumna na liście ZS i ZW

Post 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
    

ODPOWIEDZ