毎日4〜5回の間に9つのオフィスロケーションでチケットの出現を追跡するテーブルがデータベースにあるとします。これらの各期間では、1つのチケット(トランザクションモデルを使用することができると思われます)に表示されたり、多くの人に表示されることがあります(15人で見たことがあります。複合キーに基づいてキー/フィールドを増分するためのSQL /ロジックにアクセス
このテーブルからデータを取得するために、Access 2013を使用してクエリが作成されました。これはアーカイブ(現在の日付テーブルレコードは24時間後にパージされます)と一般的な分析のために実行されます。次のように
現在のクエリロジックは次のとおりです。
SELECT Format([T1]![APP_DTE],"Short Date") AS APPEAR_DTE,
T1.OFFICE, OFFCDES.OFFICE_NAME, OFFCDES.LOC_CDE, OFFCDES.LOC_NAME,
T1.APP_TIME_PER, T1.ROOM_NUM, T1.INCL_CDE, T1.ID_NUMB,
T1.ADJ_APPEAR_NUM, T2.APPEAR_CDE,
IIf([T1]![APPEAR_LOGIN_TIME] Is Null,"",[T1]![APPEAR_LOGIN_TIME]) AS LOGIN_TIME1,
IIf([T1]![OFFICE_LOGIN] Is Null,"",[T1]![OFFICE_LOGIN]) AS OFFICE_LOGIN,
IIf([T1]![DECISION_TIME] Is Null,"",[T1]![DECISION_TIME]) AS DECISION_TIME,
[T1]![ID_NUMB] & "-" & CStr([T2]![OFFICE_REP_ID]) & "-" & CStr([T1]![APP_DTE]) AS CASEKEY,
Weekday([APP_DTE]) AS NUM_DAY,
[T1]![OFFICE] & "-" & Weekday([T1]![APP_DTE]) & "-" & [T1]![APP_TIME_PER] AS OFFICE_TP_KEY, "" AS RecordKey
FROM (T1 INNER JOIN OFFCDES ON T1.OFFICE = OFFCDES.OFFICE)
INNER JOIN T2 ON T1.APPEAR_NUM = T2.APPEAR_NUM
WHERE (((Format([T1]![APP_DTE],"Short Date"))=Format(Date(),"Short Date")));
私は上記のコードを読みやすくするためにクリーンアップする必要があることを認識し、そしてそれはおそらくそれができるほど効率的ではないということ。私が信用できない部分は、同僚から同僚を引き継いで、頭を包み始めたばかりです。
クエリの結果には大量の情報が含まれていますが、そのうちのいくつか(ほとんど)は私が達成しようとしているものとは関係ありません。一度消えた情報は消えてしまったため、この情報をすべて取得することが重要です。
を私は何をしようとしている:私は、特定のID_NUMBが特定のオフィスで発生した回数を教えてしまうのキー/連番の列を組み込むしようとしている
ことが述べられ付き/引き出された日付の期間。私は周りを見回したと多くの素晴らしいナンバリングソリューションを見つけ、ほとんどは私が探していますされていない非常に何をしているが
ID_NUMB | APPEAR_NUM | OFFICE | TP | DATE | SEQ
1 | 1XZ2 | 01 | 01 | 9/7/2016 | 1
1 | 1XZ3 | 01 | 01 | 9/7/2016 | 2
2 | 3MN1 | 03 | 01 | 9/7/2016 | 1
3 | J915 | 02 | 01 | 9/7/2016 | 1
1 | 1TY1 | 01 | 01 | 9/7/2016 | 1
3 | P91D | 05 | 01 | 9/7/2016 | 1
2 | U11E | 11 | 05 | 9/7/2016 | 1
:私も、むしろ、合計のためにここSEQ列の線に沿って何かを探していませんよ数え方が細かいために達成するために。
私はテンポラリテーブルにデータを書き込むことを考えましたが、私が見つけた情報のいくつかを使用しても、何の解決策も導かれませんでした。同様に、 私はこの情報を取得し、MS Answersサイトで見つかったthe solutionという適合の種類の連続番号を追加できる別のクエリを作成しようとしました。私は間違ったアプローチのように見えたので、それを別に置いた。
私は一時テーブルにクエリを書き込んだ後、一連の番号付けを処理するVBAを持っていましたが、そのアプローチもあまり進まなかった。
私が概説したように列に連続番号を生成する正しい方法は何でしょうか?私は迷っている。タスクのこの種の
ないがSEQ'に番号をすることになっていますか '。最後の3つのエントリは3,2,2と増分されませんか?あなたの基準は、同じ日付のID_NUMBでした。あなたが基準の一部として、オフィスで投げていても - 最終ID_NUMB 1はまだそれいけない、SEQ = 3を持っている必要がありますか? SEQための一時テーブル+ VBAへ – dbmitch
クエリは非常に単純なアプローチです - あなたは一時テーブルを作成するために使用されるクエリの例がありますか?またはVBA?あなたはその方法に逆らっていますか? – dbmitch
は、最初のコメント@dbmitchに応じて、それは実際にいくつかの要因の組み合わせです。あなたは最初のものが3であったはずの正しいものです、私はそれを変更します。他の2つは、別のオフィスまたは異なる時間(あるいはその両方)に出現した。それは最終的に...多分2番目の質問/コメントへ – dramerus