テーブル構造と予想される出力については、画像を参照してください。テーブル 1 のすべての行と、2 番目のテーブルの各バッチ ID の計画番号のカウントを示す新しい列が必要です。
2 に答える
0
テーブルを結合する必要があります (計画のない 1 から欠落した行をカウントするため、左結合の方が適しています)、その後にグループを追加する必要があります
SELECT
T1.[Batch Id],
T1.[Batch Name],
T1.[Date],
T1.[Status],
COUNT(T2.PlanNUmber) AS PLANCOUNT
FROM
Table1 T1
LEFT JOIN Table2 T2 ON T1.[Batch Id] = T2.[Batch Id]
GROUP BY
T1.[Batch Id],
T1.[Batch Name],
T1.[Date],
T1.[Status]
前述のように、LEFT JOIN を実行すると、プランのないバッチが選択されますが、T1 のバッチに行がなく、T2 に行がないことが確実にわかっている場合は、INNER JOIN で問題ありません。
個人的には、両方のケースをうまくカバーしているので、最初のほうが好きです。
于 2013-09-12T03:25:28.000 に答える
0
それはかなり単純なように見えますGROUP BY
:
SELECT T1.[Batch Id], BatchName, Date, Status, COUNT(PlanNumber) AS PLANCOUNT
FROM Table1 T1
JOIN Table2 T2 ON T1.[Batch Id] = T2.[Batch Id]
GROUP BY T1.[Batch Id], BatchName, Date, Status
于 2013-09-12T03:25:39.687 に答える