2 つのデータ セットの変数を合計して結合する必要があります。これを 1 つの SQL ステートメントで実行したいのですが、これは 1 対多の結合です。SELECT ステートメントを使用して、より適切な説明がないため、サマリー変数を作成できるかどうかを知りたいと思っています。
次のコードは、INTERVAL では名前/日付ごとに 1 つのレコードしかないのに対し、DETAIL では名前/日付ごとに複数のレコードがあるため、HOURS の集計変数を誤って計算します。
確かに、これを達成するために複数のステップを書くことができましたが、1 つの SQL ステップで達成できるかどうかを確認したかったのです。ありがとう
サンプルコード:
data Detail;
Length Name CallType $25;
input date mmddyy10. name $ calltype $ count;
Format date mmddyy10.;
datalines;
05/01/2014 John Order 5
05/01/2014 John Complaint 6
05/01/2014 Mary Order 7
05/01/2014 Mary Complaint 8
05/01/2014 Joe Order 4
05/01/2014 Joe Complaint 2
05/01/2014 Joe Internal 2
05/02/2014 John Order 6
05/02/2014 John Complaint 4
05/02/2014 Mary Order 9
05/02/2014 Mary Complaint 7
05/02/2014 Joe Order 3
05/02/2014 Joe Complaint 1
05/02/2014 Joe Internal 3
;
data Interval;
Length Name $25;
input date mmddyy10. name $ hours;
Format date mmddyy10.;
datalines;
05/01/2014 John 8
05/01/2014 Mary 6
05/01/2014 Joe 4
05/02/2014 John 8
05/02/2014 Mary 6
05/02/2014 Joe 4
;
PROC SQL noprint feedback;
CREATE TABLE SUMMARY AS
SELECT
D.Name
, Sum(D.Count) as Count
, Sum(I.Hours) as Hours
FROM Detail D, Interval I
WHERE D.Name=I.Name and D.Date=I.Date
GROUP BY D.Name
ORDER BY D.Name;
QUIT;