0

tbl_DaysWeeksMonths (左のテーブル) と tbl_Telephony (右のテーブル) の 2 つのテーブルがあります。tbl_DaysWeeksMonths には列 (Row_Date/Week/Month) で年間の毎日のレコードがあり、tbl_Telephony には列 (row_date/agent/calls/talk time) で日ごとの数百のエージェントのテレフォニー データがあります (注: 各エージェントにはレコードのみがあります毎日ではなく、週に 5 ~ 6 日)。

2 つのテーブルを結合して、電話を受けたかどうかに関係なく、各エージェントが毎日のレコードを保持できるようにします。コンサルタントが電話を受けなかった日の空白レコード (日付フィールドを除く) を表示したい。例えば:

## Date ##           ## Agent ##          ## Calls ##      ## Talk Time ##

 1. 26/05/2012     |     James        |         40       |           560
 2. 27/05/2012     |     James        |                  |
 3. 28/05/2012     |     James        |         34       |           456
 4. 29/05/2012     |     James        |                  |
 5. 30/05/2012     |     James        |         40       |           643
 6. 31/05/2012     |     James        |         36       |           345
 7. 01/06/2012     |     James        |         31       |           160

以下のコードを使用しようとしていますが、正しくないと思います。使用するより良いコードに関する提案。助けてください。

SELECT tbl_DaysWeeksMonths.Row_Date, 
       [tbl_Telephony].Consultant, 
       [tbl_Telephony].i_acdtime
FROM tbl_DaysWeeksMonths
LEFT JOIN [tbl_Telephony] 
ON tbl_DaysWeeksMonths.Row_Date = [tbl_Telephony].row_date;
4

2 に答える 2

0

ステップ 1 -- 各個別のコンサルタントをリストするテーブル (名前付きなど) があると仮定して、日付とコンサルタントの可能なすべての組み合わせを生成Consultantsするクエリ (名前付きなど) を作成します。Consultant Days次のようになります。

SELECT [Consultants].Consultant, tbl_DaysWeeksMonths.Row_Date
FROM [Consultants], tbl_DaysWeeksMonths;

テーブルがない場合は、Consultantsにリストされている個々のコンサルタントを選択するクエリで置き換えることができますtbl_Telephony。つまり、次のようなConsultants クエリを作成できます。

SELECT DISTINCT Consultant FROM [tbl_Telephony];

手順 2 - に外部結合するクエリを作成しtbl_TelephonyますConsultant Days。次のようになります。

SELECT [Consultant Days].Row_Date, [Consultant Days].Consultant, [tbl_Telephony].i_acdtime 
FROM [Consultant Days] 
LEFT JOIN [tbl_Telephony]  
ON [Consultant Days].Consultant = [tbl_Telephony].Consultant 
AND [Consultant Days].Row_Date = [tbl_Telephony].row_date;

これは、 の値が のrow_date値とtbl_Telephony一致することも前提としています。つまり、 の値が 1 日である (つまり、時刻コンポーネントが含まれていない) ことを前提としています。これは、 の値が、特定のコンサルタントとその日の合計通話時間であることも前提としています(特定の通話の通話時間ではありません)。おそらく、特定のコンサルタントとその日の合計カロリー数を示す別の列があり、これをクエリに追加して、質問が必要であると言った「通話」列を取得できます。Row_Datetbl_DaysWeeksMonthsrow_datetbl_Telephonyi_acdtimetbl_Telephonytbl_Telephony

于 2012-06-06T13:48:25.667 に答える
0

このクエリも使用できます。

SELECT tbl_DaysWeeksMonths.Row_Date, [tbl_Telephony].Consultant, [tbl_Telephony].i_acdtime

FROM tbl_DaysWeeksMonths

LEFT OUTER JOIN [tbl_Telephony] ON tbl_DaysWeeksMonths.Row_Date = [tbl_Telephony].row_date;
于 2012-06-06T06:31:18.957 に答える