❶ sql 分日期汇总
select 部门名称,存货大类编码 , sum(case
when 日期 = 1月份 then
b.fnum
else
0
end)(1) 月份数量,
sum(case
when 日期 = 1月份 then
b.ftaxmoney
else
0
end)(1) 月份金额,
sum(case
when 日期 = 2月份 then
b.fnum
else
0
end)(2) 月份数量,
sum(case
when 日期 = 2月份 then
b.ftaxmoney
else
0
end)(2) 月份金额,
............. 3月
......... 4 月
....12月
from a inner join b on a.id=b.id
group by 部门名称,存货大类编码
自己照着写吧
❷ 如何用sql的日期函数,分别查出1月~12月每个月的销售金额
一般情况下数据是按日期存到数据库中的,但考虑到某些月份是无数据的,可用如下语句:
1、创建测试表及插入测试数据:
create table sale
(id int,
name varchar(10),
sdate datetime,
money int)
insert into sale values (1,'西瓜','2015-01-01',10)
insert into sale values (2,'香蕉','2015-01-05',20)
insert into sale values (3,'苹果','2015-02-01',60)
insert into sale values (4,'葡萄','2015-02-23',345)
insert into sale values (5,'柚子','2015-04-23',10)
insert into sale values (6,'牛奶','2015-05-12',67)
insert into sale values (7,'地瓜','2015-06-01',10)
insert into sale values (8,'薯仔','2015-07-01',10)
2、执行语句:
with t as
( select '2015-'+right('0'+cast(number+1 as varchar),2) number from master..spt_values where type='p' and number<=11 )
select t.number month,SUM(isnull(b.money,0)) money
from t left join sale b on
t.number=CONVERT(varchar(7),b.sdate,120)
group by t.number
结果截图:
❸ sql语句分别按日,按周,按月,按季统计金额
表:consume_record
字段:consume (money类型)
date (datetime类型)
请问怎么写四条sql语句分别按日,按周,按月,按季统计消费总量.
如:1月 1200元
2月 3400元
3月 2800元
--按日
selectsum(consume),day([date])fromconsume_recordwhereyear([date])='2006'groupbyday([date])
--按周quarter
selectsum(consume),datename(week,[date])fromconsume_recordwhereyear([date])='2006'groupbydatename(week,[date])
--按月
selectsum(consume),month([date])fromconsume_recordwhereyear([date])='2006'groupbymonth([date])
--按季
selectsum(consume),datename(quarter,[date])fromconsume_recordwhereyear([date])='2006'groupbydatename(quarter,[date])
当然,如果你的oracle报错:'month'函数报错,可以试试 to_char(b.PAYMENT_TIME,'yyyy-mm')
档
❹ SQL 怎么按时间汇总累计金额
select 日期,sum(金额) 金额 from 表名 group by 日期
❺ SQL把日期按月分类,汇总相关数据
不知道你是什么数据库,只能写个意思,具体的内容要你自己搞定。
其实就是把日期字段截取一下,如果日期本身没办法截取,那就转换一下。比如如果是oracle那么可以用to_char转换为字符型,然后再截取。如果担心1月和10月截取重复,那就多截取一位,或者查找第二个/字符的位置截取。
截取完成后,在用截取后的日期和客户分组,金额汇总求和就可以了。
我比较熟悉oracle,我用oracle的写法尝试这写一个,如果不是oracle,那么你就要自己找找类似的了。(日期也可以直接截取,不过好长时间没写忘记怎么写了,就写一个转换的吧)
select substr(to_char(日期),1,instr(to_char(日期),'/',1,2)-1) 月份,客户,sum(金额汇总) from table group by substr(to_char(日期),1,instr(to_char(日期),'/',1,2)-1) ,客户
❻ SQL 如何写语句 按客户分类,统计每年的所有金额!麻烦帮忙写一下,急!在线等
不知道您是哪个数据库,SQLSERVER可以如此写
select 客户名称,
sum(case left(交易日期,4) when '2010' then 金额 else 0 end) "2010年",
sum(case left(交易日期,4) when '2011' then 金额 else 0 end) "2011年",
sum(case left(交易日期,4) when '2012' then 金额 else 0 end) "2012年",
sum(case left(交易日期,4) when '2013' then 金额 else 0 end) "2013年"
from [table]
group by 客户名称
❼ 请问一下,SQL按日期查询,查询每一天之前的金额总和
按天累计么?
select 日期, (select sum(金额) from tb where 日期<t.日期) 日累计金额
from tb t
❽ sql 按日期汇总
参考 29、人的一生中有大大小小的等待,人渐渐忘记了自己等待的是什么。
❾ sql按照时间查询金额的总和。如2013-8-14,计算出08-01到这一天总的和。时间是变化的,为datetime 类型。
时间是变化的,为datetime 类型。就相当于是有一个变量的东西吧。
declare @d_date datetime
set @d_date = '2013-08-14' --自己可以设置的时间
declare @d_start datetime
set @d_start = convert(varchar(8),@d_date,120) + '01'表 --计算每月第一天
select sum( 总金额) from 表
where 日期 between @d_start and @d_date