表数据:
人员名称 水表口径 使用时间
zhang DN10 2013-8-1
zhang DN10 2013-8-2
zhang DN20 2013-8-3
wang DN10 2013-8-1
wang DN10 2013-8-1
wang DN15 2013-8-3
wang DN20 2013-8-4
要的查询结果是:不同的人在不同的时间使用不同的水表口径的次数统计。比如:zhang 在2013-8-1 使用DN10 1 次。wang 2013-8-1 DN10 2 次。不知道描述清楚没,麻烦各位高手了。
人员名称 水表口径 使用时间
zhang DN10 2013-8-1
zhang DN10 2013-8-2
zhang DN20 2013-8-3
wang DN10 2013-8-1
wang DN10 2013-8-1
wang DN15 2013-8-3
wang DN20 2013-8-4
要的查询结果是:不同的人在不同的时间使用不同的水表口径的次数统计。比如:zhang 在2013-8-1 使用DN10 1 次。wang 2013-8-1 DN10 2 次。不知道描述清楚没,麻烦各位高手了。
人员名称 水表口径 使用时间 使用次数
-------- -------- ----------- ----------
wang DN10 2013/8/1 2
zhang DN10 2013/8/1 1
zhang DN10 2013/8/2 1
wang DN15 2013/8/3 1
zhang DN20 2013/8/3 1
wang DN20 2013/8/4 1
select "人员名称","水表口径","使用时间",count(1)"使用次数" from t1
group by "人员名称","水表口径","使用时间"
order by "使用时间";
人员名称 水表口径 使用时间 使用次数
-------- -------- ----------- ----------
wang DN10 2013/8/1 2
zhang DN10 2013/8/1 1
zhang DN10 2013/8/2 1
wang DN15 2013/8/3 1
zhang DN20 2013/8/3 1
wang DN20 2013/8/4 1
select "人员名称","水表口径","使用时间",count(1)"使用次数" from t1
group by "人员名称","水表口径","使用时间"
order by "使用时间";
人员名称 水表口径 使用时间 使用次数
-------- -------- ----------- ----------
wang DN10 2013/8/1 2
zhang DN10 2013/8/1 1
zhang DN10 2013/8/2 1
wang DN15 2013/8/3 1
zhang DN20 2013/8/3 1
wang DN20 2013/8/4 1
先谢谢大哥,想在追问大哥一个问题,麻烦看看,统计报表要这么显示
姓名 口径\日期 2013/8/1 2013/8/2 2013/8/3 2013/8/4
wang DN10 2 0 0 0
DN15 0 0 1 0
DN20 0 0 1 0
zhang ....这样怎么取值啊,大哥。
这个需要动态sql进行列转行的
这里的日期是每次统计的是上月的26号到本月的25号是固定的。然后统计有在哪天用到过的口径的次数,这样子。姓名 口径\日期 2013/8/1 2013/8/2 2013/8/3 2013/8/4
这个东西你要作为列名的话,不是一个sql就可以搞定的,需要动态sql或存储过程。很麻烦的
这里的日期是每次统计的是上月的26号到本月的25号是固定的。然后统计有在哪天用到过的口径的次数,这样子。姓名 口径\日期 2013/8/1 2013/8/2 2013/8/3 2013/8/4
这个东西你要作为列名的话,不是一个sql就可以搞定的,需要动态sql或存储过程。很麻烦的
不是啊,大哥,这个是固定的,就和数据库里面的时间做对比,要是有用过,则在对应的口径和时间那显示次数
这里的日期是每次统计的是上月的26号到本月的25号是固定的。然后统计有在哪天用到过的口径的次数,这样子。姓名 口径\日期 2013/8/1 2013/8/2 2013/8/3 2013/8/4
这个东西你要作为列名的话,不是一个sql就可以搞定的,需要动态sql或存储过程。很麻烦的
不是啊,大哥,这个是固定的,就和数据库里面的时间做对比,要是有用过,则在对应的口径和时间那显示次数能用数据举个列子吧,现在看不懂了