0

私は2つのテーブルを持っています。表 1 は tbl_DaysWeeksMonths で、各日付に 1 つの行があり、対応する週の終了日と暦月です。表 2 は tbl_CallStats で、エージェントごとに 1 日あたり 1 つのレコードと、対応するコール数や統計などを示しています。すべてのコンサルタントが毎日のレコードを持っているわけではありません。

左側はテーブル 1 (tbl_DaysWeeksMonths) で、日付、週の終わり、月の列があります。右側は表 2 (tbl_CallStats) で、row_date、agent、logid、総通話時間、通話時間の列があります。

tbl_CallStats を tbl_DaysWeeksMonths にリンクして、特定の日に電話を受けなかった場合でも、エージェントごとに (tbl_DaysWeeksMonths に基づいて) 日付レコードが表示されるようにします。

左結合を試みましたが、電話がかかってきた日の記録しか表示されません。ここで単純なものが欠けているように感じます。助けてください。

SELECT Date,[Week Ending],tbl_CallStats.agent
FROM tbl_DaysWeeksMonths
LEFT JOIN tbl_CallStats
ON tbl_DaysWeeksMonths.Date = tbl_CallStats.row_date
GROUP BY Date, Week, agent
4

1 に答える 1

0

このクエリはすべての日を取得し、tbl_CallStatsにあるすべてのエージェント呼び出しを表示する必要があります。これは、毎日およびエージェントのtbl_CallStatsに常に行があることを考慮に入れています。

"select tbl_DaysWeeksMonths.Date, tbl_DaysWeeksMonths.WeekEnding, tbl_DaysWeeksMonths.Month, 
tbl_CallStats.agent, tbl_CallStats.logid, tbl_CallStats.totalcalls, tbl_CallStats.talktime
from tbl_DaysWeeksMonths
left join tbl_CallStats on tbl_CallStats.row_date = tbl_DaysWeeksMonths.Date
group by tbl_CallStats.agent, tbl_DaysWeeksMonths.Date "

呼び出しがないときにtbl_CallStatsにレコードがない場合は、エージェント用の別のテーブルを作成して、それらに関連する値を取得できます。たとえば、毎日すべてのエージェントに参加するすべての日を選択し、callstatsに参加したままにします。 ..

于 2012-06-04T15:26:51.710 に答える