我在Access数据库(从外部源导入 - 并经常导入)中有下表(称之为tblGifts):
Person____GiftDate___GiftAmount
A________6/4/2014____$20
A________7/1/2014____$20
B________7/1/2014____$30
B________7/4/2014____$20
Run Code Online (Sandbox Code Playgroud)
有一个用户表单提示用户输入日期范围.我希望只有当所有GiftDates都在提供的日期范围内时,才可以将GiftAmount列相加.因此,例如,如果用户将2014年6月30日提供给2014年7月10日,则输出将类似于:
Person____GiftAmount
B________$50
Run Code Online (Sandbox Code Playgroud)
A人不会被包括在内,因为他有一个超出范围的GiftDate.
我正在考虑做以下事情:(这显然不起作用,因为它也拉人A)
SELECT Person, Sum(GiftAmount)
FROM tblGifts
WHERE GiftDate Between [Forms]![InputForm]![BeginDate] And [Forms]![InputForm]![EndDate]
GROUP BY Person
Run Code Online (Sandbox Code Playgroud)
您只需添加WHERE子句,即可排除在日期范围之外捐赠的人员.
SELECT Person, Sum(GiftAmount)
FROM tblGifts
WHERE Person NOT IN (
SELECT Person FROM tblGifts
WHERE GiftDate > [Forms]![InputForm]![EndDate]
OR GiftDate < [Forms]![InputForm]![StartDate]
)
GROUP BY Person
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
275 次 |
| 最近记录: |