复杂的数据库查询(销售统计分析)问题

表 a: 员工销售统计表

部门

工号

姓名

负责地区

销售金额

部门一

001

员工一

北京

2

部门一

002

员工二

上海

3

部门一

003

员工三

上海

4

部门一

003

员工三

上海

5

部门二

004

员工四

北京

6

部门二

004

员工四

北京

7

部门二

005

员工五

上海

8

  

/********************结果效果图*********************************/

 按部门统计结果:

部门:部门一

工号

姓名

上海

北京

数量

金额

数量

金额

001

员工一

0

0

1

2

002

员工二

1

3

0

0

003

员工三

2

9

0

0

部门:部门二

工号

姓名

上海

北京

数量

金额

数量

金额

004

员工四

0

0

2

13

005

员工五

1

8

0

0

使用sql查询员工销售统计表(表 a)中的数据,返回一个按照部门和地区销售业绩的结果并且能在gridview或repear 控件中绑定的结果。

繁星点点滴滴
浏览 540回答 9
9回答

守着一只汪

NID       NUMBER Y          工号IDNNAME     VARCHAR2(20) Y     员工姓名NPART     NUMBER Y           所属部门ADDRESS   VARCHAR2(20) Y      地址NMOENY   sNUMBER Y           金额   Select NID,NName,sum(NMoeny) from ABC Where NPart=部门 Group by Address,NID,NName

阿晨1998

  你没说这些员工属于什么部门是怎么区分的啊?

慕田峪7331174

表中的数据用颜色区分了,每一个员工都对应有自己的部门,第一个字段就是部门。

慕姐8265434

想完全达到你的显示结果仅仅靠sql是实现不了的,你这个能够做的就是用动态sql统计出按照部门分组的数据。

皈依舞

可以根据查询条件动态生成sql语句,不过这样就没有办法利用sql缓存,如果数据量比较大就会很慢。 建议: 根据不同的查询条件,比如按部门统计,按员工统计,按地区统计等等情况,分别创建相应的存储过程,然后在程序中判断用户选择的查询条件,确定调用哪个存储过程来执行查询。

狐的传说

需要的是所有的查询条件都同时具备,不是单个查询条件。

qq_花开花谢_0

下面是按只有两个地区的sql ,如果超出两个地区,我想只能在存储过程里写了 select gonghao,max(xingming) xingming ,max(cnum) cnum,max(sjine) sjine,min(cnum) mnum,min(sjine) mjine from (SELECT diqu, gonghao,max(xingming) as xingming,count(gonghao) as cnum,sum(jine) as sjine  FROM [SCTest].[dbo].[test1]where bumen = 1group by gonghao,diqu) as tab1group by gonghao 表: 1    1    name1    dress1    51    1    name1    dress1    21    1    name1    dress2    62    2    name2    dress1    62    2    name2    dress2    22    2    name2    dress2    31    3    name3    dress1    91    3    name3    dress2    10 结果: 1    name1    2    7    1    63    name3    1    10    1    9

慕仙森

那就只能写存储过程,用游标循环,建临时表,最后反回临时表内容
打开App,查看更多内容
随时随地看视频慕课网APP