求一sql的统计语句

t_kong 发布于 2014/02/12 10:43
阅读 313
收藏 2

有一记录表,如下。

id(序号) date(时间) product(产品)
1 2013-11-2 A
2 2013-11-3 B
3 2013-11-4 A
4 2013-11-5 C
5 2013-11-10 B
6 2013-11-11 B
7 2013-12-1 A
8 2013-12-2 C
9 2013-12-9 C
10 2013-12-10 C
11 2013-12-11 A
12 2013-12-12 B

其中只有三个产品:A、B、C

统计一下每个产品,每月的数量,结果如下:

产品 201311 201312
A 2 2
B 3 1
C 1 3

请问sql语句如何写?





加载中
0
Tuesday
Tuesday
不要把sql当神了.. 请用asp , php语言计算.
0
t
t_kong

引用来自“Tuesday”的答案

不要把sql当神了.. 请用asp , php语言计算.

之前统计成真样了

日期 产品 数量
201311 A 2
201311 B 3
201311 C 1
201312 A 2
201312 B 1
201312 C 3

就是思考一下嘛,能不能那样子实现。因为,只是一个不常用的统计,所以,如果SQL可以实现,就不用那么麻烦了。

0
我是一名程序员
我是一名程序员
收藏一下,sql应该是可以实现的,等待大神
0
NealFeng
NealFeng
一条语句估计写不了吧,得写个存储过程。
0
Ryan-瑞恩
Ryan-瑞恩

明显的行转列查询统计。。。。去找行转列查询写法!!!

0
supperskystar
supperskystar
行转列即可
0
supperskystar
supperskystar

select orgcode,si_ograde_name,
s_source_orgid,s_source_orgname,s_arrival_orgid,s_arrival_orgname,r_arrival_whouseid,r_arrival_whousename,
max(case si_status_id when '901' then si_tamount else 0 end) as "byjs",
max(case si_status_id when '902' then si_tamount else 0 end) as "syjs",
sum(si_tamount) as hjjs,
max(case si_status_id when '901' then si_weight1 else 0 end) as "byzl",
max(case si_status_id when '902' then si_weight1 else 0 end) as "syzl",
sum(si_weight1) as hjzl
from

类似于这种'901','902'的写法

0
烟头
烟头

行转列   

麻烦就在于列是不固定的,如果固定两列 就比较容易了

返回顶部
顶部