首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MS-Access SQL条件过滤的困难

MS-Access SQL条件过滤的困难
EN

Stack Overflow用户
提问于 2012-12-15 00:39:58
回答 1查看 432关注 0票数 2

我在MS-Access中有一个查询,我试图根据一个条件提取一些值,然后对结果求和。

代码语言:javascript
运行
复制
SELECT SchedulingLog.UserID, SchedulingLog.Category, Sum(SchedulingLog.Value) AS Gain, Sum(SchedulingLog.Value) AS Used, [Gain]+[Used] AS [Left]
FROM SchedulingLog
GROUP BY SchedulingLog.UserID, SchedulingLog.Category, [Gain]+[Used]
HAVING ((
(SchedulingLog.Category) Like "DH*" Or 
(SchedulingLog.Category) Like "Com*") AND 
("Where[CatDetai]" Like "Gain*") AND 
("Where[CatDetai]" Like "Used*")
);

有了SchedulingLog中的这些数据...

代码语言:javascript
运行
复制
Userid LogDate EventDate Category CatDetail Value
abc123  1-1-11    7-2-11 DH       DH Used      -1
abc123  1-1-11    7-4-11 DH       DH Gain       1

..。我想让我的查询得到这个结果集:

代码语言:javascript
运行
复制
Userid Category Gain Used Left
abc123 DH          1   -1    0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-15 01:12:29

下面的SQL根据在Access 2007中使用示例数据进行的测试返回您所要求的内容。

代码语言:javascript
运行
复制
SELECT
    Userid,
    Category,
    Sum(IIf(CatDetail ALike '%Gain', [Value], 0)) AS Gain,
    Sum(IIf(CatDetail ALike '%Used', [Value], 0)) AS Used,
    [Gain] + [Used] AS [Left]
FROM SchedulingLog
GROUP BY
    Userid,
    Category

但是,如果您实际上不需要查看GainUsed的不同值,那么这样做会更简单:

代码语言:javascript
运行
复制
SELECT
    Userid,
    Category,
    Sum([Value]) AS [Left]
FROM SchedulingLog
GROUP BY
    Userid,
    Category
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13882788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档