这条SQL怎么写?

Javaxhb 2006-04-03 05:54:00
1 tiCd tinyint 1 0
2 sDate char 6 0
3 dcKingaku decimal 9 0

表TABLE1有三个字段:tiCd为关键字,现在如果我传入的月份为4,这2003年4-2004年4月的数据做合计,2004年4月-2005年2月的数据做合计,如果计算2003年-2006年的合计的值,dcKingaku为金额.谢谢.
tiCd sDate dcKingaku
1 2003 5 10000
1 2006 4 40000
1 2006 5 50000
1 2006 6 60000
1 2006 7 70000
1 2006 8 80000
1 2006 9 9
1 200610 10
...全文
112 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
僵哥 2006-04-03
  • 打赏
  • 举报
回复
原來如此
declare @iMon integer
select @iMon=4

SELECT SUM(dcKingaku) AS sum_dcKingaku, iyear
from (
select dcKingaku ,case when cast(right(sDate,2) as integer)<@iMon then cast(left(sDate,4) as integer)-1 else left(sDate,4) end as iyear from T_YOSAN
) A
group by iyear
Javaxhb 2006-04-03
  • 打赏
  • 举报
回复
高分求救.
Javaxhb 2006-04-03
  • 打赏
  • 举报
回复
SELECT SUM(dcKingaku) AS sum_dcKingaku, iyear
FROM (SELECT dcKingaku, tiCd, syNcd, sNcd, sDate, LEFT(sDate, 4) iyear
FROM T_YOSAN) A

GROUP BY iyear
ORDER BY iyear

这是我写的,不过只能实现按自然年统计,因为财务上的一年,不一定是从1月开始,现在要实现如果有一个月份值,比如4,就要实现2003 4-2004 3,2004 4 -2005 3,2005 4 -2006 3这样合计一下,我现在做到了2003 1-2003 12,2004 1 -2004 12,2005 1 -2005 12这样合计.
僵哥 2006-04-03
  • 打赏
  • 举报
回复
看8懂

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧