2011-10-28 16 views
0

これで、潜在的な顧客への通話を追跡できるデータベースを構築しました。基本的に、ユーザーは通話リストを作成し、各顧客に電話をかけた後、自分のテーブルの[通話状況]フィールドを「在席者」、「回線使用中」、「切断番号」などに更新します。MSアクセス - 日付が機能していない最大機能

私が問題を抱えているのは、「Call List」テーブルを作成するために使用する「Generate Call List」クエリを実行すると、既に到達した人がいます。私は、通話ステータスが "到達した人"を除外する条件を持っていますが、何らかの理由でそれが機能していません。ここにSQLがあります。

SELECT [Telephone Status].Patient_ID, Max([Telephone Status].Date_Called) 
AS [Date Last Called] 
FROM [Telephone Status] 
WHERE ((([Telephone Status].Call_Status_Details)="Call Back Later") AND 
(([Telephone Status].Call_Status)<>"Person Reached")) 
GROUP BY [Telephone Status].Patient_ID; 

私は、Date_Calledフィールドで最大の機能を使用して、私が最新の呼び出し(最大)から「人に達した」ステータスを持つ個人を除くだろうということを考えたが、私はまだ取得しています人々人達成された。

参加者ごとに最新のDate_Calledエントリについてこの条件(「Person Reached」)をどのように確認し、条件がTrue(Personに達した場合)かどうかを除外する方法を教えてください。

おかげ

答えて

3

は私が午前問題は、私は(私はコールリスト表を移入するために使用します)、「コールリストの生成」クエリを実行すると、私はすでに達している人々を取得していますということです。

あなたはその声明が本当であることをどのように知っていますか?私はあなたが誤ってコールリストに含まれていたPatient_IDのいずれかの[電話ステータス]テーブルのデータ、Date_Called、Call_Status_Details、およびCall_Statusフィールドを調べる必要があると思います。

「通話相手」の通話ステータスを持つ人は除外されますが、何らかの理由でそれが機能していないという条件があります。

ない丁度...

SELECT 
    ts.Patient_ID, 
    Max(ts.Date_Called) AS [Date Last Called] 
FROM [Telephone Status] AS ts 
WHERE 
    ts.Call_Status_Details = "Call Back Later" 
    AND ts.Call_Status <> "Person Reached" 
GROUP BY ts.Patient_ID; 

...ので、あなたは、両方が真でなければならない2つの基準を持っています。 「到達人は、」コールリストのクエリに含めることができる

いくつかの方法があります。そのような人」など

  1. Call_Status_Details =「後で電話」が、Call_Status「に達する者」以外 あり、 R eached ";人 Reachd。 ";など
  2. Call_Status_Details =のレコード『後で電話』、最後Call_Status =より新しい Date_Called『に達した人』が、 Call_Statusのためのいくつかの他の有効な値
  3. 索引のこれらのフィールドは破損している。

最初は、データ品質の問題です。あなたはあなたとあなたのクエリが期待どおりのデータが一貫して保存されていることを確認する必要があります。私は第二の可能性について知らない

。これは、あなたのビジネスルールとそのルールに依存します実装されました。

インデックスの破損は、私の経験ではまれだと思われますが、起こりうると聞いてきました。コンパクト&修理で修復できます。詳細については、Tony TowesのCorrupt Microsoft Access MDBs FAQを参照してください。

を編集します。コールリストテーブルに入力する「コールリストの生成」クエリがあります。これは、[電話ステータス]テーブルの最新の更新とコールリストテーブルが同期しなくなる可能性がある状況です。別のテーブルに重複した(おそらく古い)情報を複製するのではなく、呼び出しリストにクエリ自体を使用する方がよいでしょう。

+0

こんにちはハンス、私は本当にデータ品質の問題を持っていない呼び出し元は、コンボボックスからCall_Statusを選択している。また、コールリストにクエリ自体を使用することをお勧めしますが、私の状況ではうまくいかないと思います。その理由は、コールリストを生成するたびに、私が働いているスタッフの数によって呼び出される人の数を分割する必要があるからです。そこで、まずコールリストテーブルを作成してから、特定のスタッフにコールを割り当てるために更新クエリを使用します(下に続きます)。 – jerry

+0

コールリストに1000人の人がいて、4人が働いていると、 250人の方にお電話ください。残念ながら、私は実際にはクエリだけで同じ結果を達成する方法を知っていません。最後に、私はこれがおそらく最も理想的な設定ではないことを知っていますが、Call Listテーブルは最新のものではないかもしれませんが(毎日更新していますが)、各スタッフはカスタムクエリを使用してコールリストを生成します。割り当てられたレコードだけを引く以外に、今日連絡を受けたレコードもすべて削除します。 – jerry

+0

だから、私は、 "Person Reached"が最初のものとは対照的にこの2番目のクエリであるかどうかをチェックする必要があるかもしれないと思う。あなたがそれを打つとき、すべてが意味を成し遂げ始めるのは面白いです。常に助けてくれてありがとうHans!上記のあなたの答えは妥当であり、同様の状況の人々を助けることができるので、私はそれを受け入れるでしょう。 – jerry

関連する問題