【发布时间】:2016-11-29 02:49:02
【问题描述】:
要求:生成一个查询,该查询根据电话号码输出数据,以响应用户输入 StartDate、EndDate 和 Upper Data Threshold。
这些输入变量是查询的界限。因此,SELECT 语句相应地写在下面。
唯一需要注意的是,如果电话号码的单个记录超过了上限数据阈值,则不应输出与该违规电话号码关联的所有电话号码记录,而不管同一电话号码的其他记录没有t 违反数据阈值。以下是示例输入和预期输出:
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 记录,因为它只用了 1 条记录就超过了 50kB(即第 3 条记录),因此将相应地省略所有 647-409-8206 记录。
感谢任何帮助!谢谢!
【问题讨论】:
-
那些看起来像真实的电话号码并搜索为真实的电话号码。您确定要与很多人分享此内容吗?
-
它们肯定是假数字,我已经相应地修改了数据 - 但谢谢!
-
您似乎也有一些设计错误。
-
查看
NOT IN和子查询。 -
我已经调查过了,但很遗憾无法将其应用到我的示例中