1
私はMySQLがどのようにしてGroup_Concat
で動作するかを知っていますので、SQLサーバがどのようにグループ連結と連携するかを理解することは困難です。私はBx
の値を選択しているので、xml path
のグループ化のためには、PPNumber
でグループ化することはできません。SQL Server - グループ返す同じ情報
Bxとの区切りのリストを作るための方法はpp.[PPNumber] as PartNumber
列にグループ基づいて値ありますかxml path
グループ内のみPPNumber
列によってグループにBxs
を取得するための良い方法はありますか?
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] ;
結果とSQL文からリバースエンジニアリングするのは非常に難しいので、サンプルデータを投稿すると助けになります。私はあなたのSELECT句のサブクエリは、メインクエリ(サブクエリのWHERE句の 'def.dbo.boxes'とメインクエリの2つのテーブルとの間には関係がありません)と相関していないことが問題だと思います。私はボックステーブルにすでに参加しているので、サブクエリは不要だと思っています。サンプルデータは明らかにするのに役立ちます。 – JNevill
サンプルデータは画像内にあります。それに役立つその他の情報は何ですか? @JNevill – narue1992
@JNevillは、あなたが探している結果だけでなく、あなたが始めているもののサンプルを投稿するように求めています。コンテキストがないクエリを見ると、タスクがずっと難しくなります。 –