首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅根据当前会计年度计算字段合计- SQL

仅根据当前会计年度计算字段合计- SQL
EN

Stack Overflow用户
提问于 2012-03-14 22:38:43
回答 4查看 1K关注 0票数 0

我见过许多使用会计年度计算字段总和的示例,但我找不到一个适合我的需求。我正在尝试做的是使用SQL查询来获取字段的当前会计年度合计。我拥有的字段是userid、startdate、total_hours和missed_hours。以下是我到目前为止得到的查询:

代码语言:javascript
运行
复制
SELECT    
userid,    
SUM(total_hours) - SUM(missed_hours) AS hours    
FROM mytable    
GROUP BY userid

这很有效,但我所需要的是每个userid的当前会计年度的总小时数。我只需要当前的财政年度,我需要它在今年7月重新开始。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-14 23:03:26

假设这是SQLServer,请尝试:

代码语言:javascript
运行
复制
SELECT userid, SUM(total_hours) - SUM(missed_hours) AS hours    
FROM mytable
WHERE startdate >= cast( cast(year(dateadd(MM,-6,getdate())) as varchar(4)) + 
                         '-07-01' as date ) and
      startdate <  cast( cast(year(dateadd(MM, 6,getdate())) as varchar(4)) + 
                         '-07-01' as date )
GROUP BY userid
票数 1
EN

Stack Overflow用户

发布于 2012-03-14 22:41:51

添加where子句:

代码语言:javascript
运行
复制
FROM mytable
WHERE startdate >= '2011-07-01'
GROUP BY userid

或随着年初的动态变化而变化:

代码语言:javascript
运行
复制
where startdate >= dateadd(yy, datepart(yy, getdate())-2001, '2000-07-01')
票数 1
EN

Stack Overflow用户

发布于 2012-03-14 22:47:16

可能是这样的:

代码语言:javascript
运行
复制
SELECT
    userid,
    SUM(total_hours) - SUM(missed_hours) AS hours
FROM 
    mytable
WHERE 
    MONTH(startdate) BETWEEN 6 AND 7
    AND YEAR(startdate) IN (2011,2012)
GROUP BY userid
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9704070

复制
相关文章

相似问题

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