Werte in Variable abspeichern

Das ist auf jeden Fall schon sehr gut. Vielen Dank!
Jetzt bekomme ich folgendes Ergebnis:
test
2 EURO; 2 EURO
1 INDU; 1 INDU
Code:
Select STUFF((SELECT '; ' ,+ cast(ap AS VARCHAR(10)) + Bezeichnung2
         from Auftragspakete apk
        join FraechterVerpackungsarten fvp on fvp.Verpackungsart = apk.Verpackungsart         
         where apk.SendungsNr = '10127' and fvp.FraechterNr = '001' and not fvp.Mandant = '01' group by fvp.Bezeichnung
           FOR XML PATH('')),1,2,'') as test
          from (select  COUNT(DISTINCT apk.Barcode) as ap, fvp.Bezeichnung as Bezeichnung2 from Auftragspakete as apk Join FraechterVerpackungsarten fvp on fvp.Verpackungsart = apk.Verpackungsart 
where apk.SendungsNr =  '10127' and fvp.FraechterNr = '001' and not fvp.Mandant = '01' group by fvp.Bezeichnung) as AnzahlPakete2
Wie kann ich es jetzt einstellen, dass er mir die Ergebnisse nicht doppelt hintereinander schreibt, sondern ausschließlich die Ergebnisse nebeneinander?
 
Werbung:
Zeig mal bitte die Datensätze die zu diesem Ergebnis führen, ohne die kann ich das nicht nachvollziehen.
 
Auftragspakete
Fraechter ---- Barcode --- SendungsNr ---- Verpackungsart
001 --------------- 111 ---------- 10127 --------------- 53
001 --------------- 112 --------- 10127 -------------- 53
001 -------------- 113 ----------- 10127 --------------- 54

Fraechterverpackungsarten
FraechterNr ---- Verpackungsart ------ Bezeichnung
001 ----------------------- 53 ---------------- EURO
001 ----------------------- 54 ---------------- INDU

Ich hab dir mal das nötigste rausgesucht. Wenn dir noch was fehlt, gerne Bescheid geben.
 
Und die Datensätze aus FraechterVerpackungsarten? Die sind ja nun auch entscheidend.

Außderm bezieht sich dein stuff() gar nicht auf AnzahlPakete2, also deinen vorher ausgeführten Select sondern macht den ganzen Select nochmal. Du hast auch denn Join und alle Bedingungen doppelt drin.
 
Die Datensätze für FraechterVerpackungsarten sind doch da!?
Ja weil ich nicht so ganz weiß, wie ich das kürzen kann, ohne das er mir Fehler ausgibt. Kannst du mir da vielleicht ein bisschen auf die Sprünge helfen?
 
Ah sry hab ich nicht gesehen.

So geht es:
Code:
WITH Auftragspakete(Fraechter,Barcode,SendungsNr,Verpackungsart) AS (
   SELECT '001',111,10127,53 UNION ALL
   SELECT '001',112,10127,53 UNION ALL
   SELECT '001',113,10127,54
   ), Fraechterverpackungsarten(FraechterNr,Verpackungsart,Bezeichnung,Mandant) AS (
   SELECT '001',53,'EURO','' UNION ALL
   SELECT '001',54,'INDU',''
   )
SELECT   stuff((   SELECT '; ' + cast(t.ap AS VARCHAR(10)) + t.Bezeichnung2
         FROM   (   SELECT   count(DISTINCT apk.Barcode) AS ap,
                   fvp.Bezeichnung AS Bezeichnung2
               FROM   Auftragspakete AS apk
               JOIN   FraechterVerpackungsarten fvp
               ON     fvp.Verpackungsart = apk.Verpackungsart
               WHERE   apk.SendungsNr = '10127'
               AND     fvp.FraechterNr = '001'
               AND NOT   fvp.Mandant = '01'
               GROUP BY fvp.Bezeichnung ) t
         FOR XML PATH('')),1,2,'') AS test
Der WITH Teil simuliert nur deine Tabellen.
 
Werbung:
Zurück
Oben