Ich bin zu verwenden, wie MySQL mit Group_Concat
arbeitet, so Schwierigkeiten zu verstehen, wie SQL Server mit Group Concat funktioniert. Ich kann nicht gruppieren nur durch PPNumber
für die xml path
Gruppierung, da ich den Bx
Wert auswähle.SQL Server - Gruppe von gibt die gleichen Informationen zurück
Gibt es eine Möglichkeit, die begrenzte Auflistung von Bx zu machen Gruppe auf den pp.[PPNumber] as PartNumber
Spaltenwerte basierten oder gibt es einen besseren Weg, um die Bxs
zu einer Gruppe von PPNumber
Spalt innerhalb der xml path
Gruppierung nur zu bekommen?
SELECT
pp.[PPNumber] as PartNumber,
COUNT(PSN) as ActualCount,
replace((SELECT b.Bx AS [data()]
FROM def.dbo.[boxes] b
Group By b.[PPNumber] ,b.Bx
ORDER BY b.Bx
FOR xml path('')), ' ', ',') as Bxs
FROM def.dbo.[packtable] p
JOIN (SELECT Bx, [PPNumber] FROM def.dbo.[boxes] WHERE (CONCAT(Completed, '
', CompletedTime) > @sDate AND CONCAT(Completed,' ', CompletedTime) <
@eDate)) b on p.Bx= b.Bx
JOIN def.dbo.[PPNumlist] pp on b.[PPNumber] = pp.[PPNumber]
GROUP BY pp.[PPNumber]
ORDER BY pp.[PPNumber] ;
Es würde helfen, wenn Sie einige Beispieldaten posten könnten, da es sehr schwierig ist, von Ihren Resultaten und von sql-Anweisung zurückzuentwickeln. Ich vermute, das Problem ist, dass die Unterabfrage in Ihrer SELECT-Klausel nicht mit der Hauptabfrage korreliert ist (keine Beziehung zwischen 'def.dbo.boxes' in der WHERE-Klausel Ihrer Unterabfrage mit den beiden Tabellen der Hauptabfrage). Ich vermute auch, dass die Unterabfrage unnötig ist, da Sie bereits der Boxentabelle beigetreten sind. Beispieldaten würden jedoch helfen, dies zu klären. – JNevill
Die Beispieldaten befinden sich im Bild. Welche anderen Informationen sollte ich dann bereitstellen, um zu helfen? @JNevill – narue1992
@JNevill fragt Sie, dass Sie eine Stichprobe von dem, was Sie beginnen, und nicht nur das Ergebnis (s), die Sie suchen. Wenn Sie die Abfrage ohne den Kontext betrachten, wird die Aufgabe viel schwieriger. –