要件:StartDate、EndDate、およびUpper Data Thresholdのユーザー入力に応じて、電話番号に基づいてデータを出力するクエリを生成します。SQL MS Accessクエリの除外条件
これらの入力変数は、クエリの境界です。したがって、SELECTステートメントはそれに応じて以下に記述されました。
唯一の注意点は、電話番号が上限データしきい値を超える単一のレコードを持つ場合、その違反電話番号に関連付けられたすべての電話番号レコードは、同じ電話番号の他のレコードとは無関係に出力されるべきではないデータのしきい値に違反していません。以下のサンプル入力と期待出力されます:
User input Start Date: 1/15/2015
User input End Date: 11/15/2015
User input Upper Data Threshold in kB: 50
[Master] Table in Access:
Invc Date Mobile Nbr PktDtVol
--------- ---------- --------
1/15/15 647-409-8206 48kB
2/15/15 647-409-8206 33kB
3/15/15 647-409-8206 8000kB
4/15/15 647-409-8206 20kB
5/15/15 647-409-8206 10kB
6/15/15 647-409-8206 0kB
7/15/15 718-500-2311 3kB
8/15/15 718-500-2311 45kB
9/15/15 718-500-2311 25kB
10/15/15 514-300-3311 33kB
11/15/15 514-300-3311 20kB
[TEMP_TABLE]で出力期待
:
Invc Date Mobile Nbr PktDtVol Difference in Days
--------- ---------- -------- -------------------
7/15/15 718-500-2311 3kB 304
8/15/15 718-500-2311 45kB 304
9/15/15 718-500-2311 25kB 304
10/15/15 514-300-3311 33kB 304
11/15/15 514-300-3311 20kB 304
私の現在のソリューション:
PARAMETERS [Start Date] DateTime, [End Date] DateTime, [Upper Bound
Usage in KB] IEEEDouble;
SELECT [Master].[Invc Date], [Master].PktDtVol, [Master].[Mobile Nbr],
DateDiff("d",[Start Date],[End Date]) AS [Difference in days] INTO
Temp_Table
FROM [Master]
WHERE ((([Master].[Invc Date]) >= [Start Date] And
([Master].[Invc Date])<=[End Date]) AND
(([Master].PktDtVol)<= [Upper Bound Usage in KB]));
647-409-8206レコードが期待されていません出力では50kB(3番目のレコード)を超えるレコードが1つしかなかったので、ALL 647-409-8206レコードはそれに応じて省略されます。
ありがとうございました!ありがとう!
実際の電話番号のように見え、実際の電話番号と同じように見えます。かなりの人とこれを共有してもよろしいですか? – Fionnuala
彼らは確かに偽の数字です、私はそれに応じてデータを修正しました - しかし、ありがとう! – stitch70
また、いくつかの設計ミスがあるようです。 – Fionnuala