请高手帮忙解决下SQL查询

来源:百度知道 编辑:UC知道 时间:2024/05/09 09:08:30
SQL里我有2张表,A里有字段"单证号,种类,费用”,B里有"单证号,部门号,人名”,需要做个费用的结算.其中种类的数值是"AA,AB,AC...等”,因为种类不同,费用的结算方法也不一样.例如”AA类的结算=费用*10%,AB类=费用*20%”
现在想要做下面这样的表格:
(部门:1部, 人名:张三)
单证号 种类 费用 结算
001 AA 10 1
002 AA 20 2
总计 3
005 AB 50 10
总计 10
高手,请你帮帮我吧,QQ 54789392
在线等

(部门:1部, 人名:张三)
单证号 种类 费用 结算
001 AA 10 1
002 AA 20 2
总计 3
005 AB 50 10
总计 10
(部门:2部, 人名:李四)
单证号 种类 费用 结算
001 AA 10 1
002 AA 20 2
总计 3
005 AB 50 10
总计 10

你要的是不是这样的东西?如果是这样光一个SQL是不够用的。还要看你用什么语言。肯定有逻辑的,只用一个sql查出来的东西不是这样的

不同语言,写法是不一样的,但是逻辑是一样的,我和你说下逻辑吧,我是写java的。
select * from 表A a,表B b where a.单证号 = b.单证号 group by b.部门号,b.人名
这个语句得到的数据模型是这样的
1部 张三 001 AA 10 1
1部 张三 002 AA 20 2
1部 张三 005 AB 50 10
2部 李四 001 AA 10 1
2部 李四 005 AB 50 10
现在你逐条读数据,
读第一个的时候,先读“部门号”和“人名”两个字段,把这两个字段保存在两个字符串中(后面备用)。然后把这两个字段打印出来:
(部门:1部, 人名:张三)
然后打印
单证号 种类 费用 结算
下面把你读到第一条数据的其他信息,对应打印出来,把需要计算的数据保存下来。
读第二个数据,取“部门号”和“人名”两个字段和刚才保存的两个字符串对比。
如果相同,就继续把其他信息对应打印出来,把需要计算的东西加在刚才的数据上。。
如果不相同,就把对应的两个字符串替换掉,然后打印出来这两个字段
(部门:2部, 人名:李四)
后面的类似