假设查询每样货物在2004年5月份的销售总额:可以这样写
select 货物信息,sum(需交款) 销售总额 from 货物出库表 where 出货日期 between '2004-05-01'
and '2004-05-31' group by 货物信息 order by 销售总额
解决方案 »
- 怎样用sql语句去掉空格
- 有哪个存储过程能够得到某张表里面字段的描述?
- SQL VARCHAR想用一个between查所有
- 在存储过程A中调用另一个存储过程B(返回值是一个table),怎么得到存储过程B的返回值
- 请问该 如何解决id列自动增长问题?
- declare 变量作交叉表 生成数据以后 如何把数据插入临时表,然后对临时表操作
- TransformCopy "DirectCopyXform"
- 这个是补给 libin_ftsafe(子陌红尘) 的 400 分的帖子(3/4)
- 关于writetext和readtext的问题
- 数据库设置主键最多不能超过几个比较好?
- 登陆密码是什么?
- 这个问题怎么解决嘛!!!关于建表
select datepart(m,出货日期) 日期,
货品信息,
sum(需交款) 总计
from table
group by datepart(m,出货日期),
货物信息
insert into #t values('2005-4-5','Paper',50)
insert into #t values('2005-5-8','Pencil',20)
insert into #t values('2005-5-18','Oil',50)
go
--delete from #t
select * from #t
/*
YMD Nam TPrice
------------------------------------------------------ ---------- ---------------------
2005-04-05 00:00:00.000 Oil 100.0000
2005-04-05 00:00:00.000 Paper 50.0000
2005-05-08 00:00:00.000 Pencil 20.0000
2005-05-18 00:00:00.000 Oil 50.0000(4 row(s) affected)*/
declare @SDAT datetime
declare @EDAT datetime
set @SDAT = '2005-05-01'
set @EDAT = '2005-05-31'
declare @SQL as varchar(150)
set @SQL = '
select t.Nam,sum(t.TPrice) as ''' + convert(varchar(10),@SDAT,120) +'~' +
convert(varchar(10),@EDAT,120) + ''' from #t t where t.YMD between '''+
convert(varchar(10),@SDAT,120) + ''' and ''' +
convert(varchar(10),@EDAT,120) + ''' group by t.Nam'
exec(@SQL)/*
Nam 2005-05-01~2005-05-31
---------- ---------------------
Oil 50.0000
Pencil 20.0000
*/
declare @EDAT datetime
set @SDAT = '2005-05-01'
set @EDAT = '2005-05-31 23:59:59'
select 货物信息,销售总额=sum(需交款) from 货物出库表
where 出货日期 between @SDAT and @EDAT
group by 货物信息 order by 销售总额
insert into t# values('2005-4-5','paper','50');
insert into t# values('2004-5-8','pen','20');
insert into t# values('2004-5-15','oil','50');
insert into t# values('2004-01-12','oil','100');
insert into t# values('2004-02-02','pen','200');
insert into t# values('2004-01-20','pencil','600');select * from t#2005-04-05 00:00:00.000 oil 100
2005-04-05 00:00:00.000 paper 50
2004-05-08 00:00:00.000 pen 20
2004-05-15 00:00:00.000 oil 50
2004-01-12 00:00:00.000 oil 100
2004-02-02 00:00:00.000 pen 200
2004-01-20 00:00:00.000 pencil 600
--------------------------------------------------假如是四月份的
select infor , sum(mon) as total from t# where saledate>'2004-01-01' and saledate<'2004-12-30'group by inforoil 150
pen 220
pencil 600