又是比较复杂的SQL问题,我用Access(90分)

  • 主题发起人 Restart1
  • 开始时间
R

Restart1

Unregistered / Unconfirmed
GUEST, unregistred user!
啊哈哈哈,我现在又遇到问题了!我又有了A,B两个表,这一次咧,A表中有:
贷方科目,借方科目,贷方金额,借方金额
B表中有~````汇总科目,借方金额,贷方金额
其实A表就是会计凭证表,B表就是科目汇总表,耍过会计的都知道了,
我想做的就是,遍历一次A表,选择出在借方科目或者贷方科目中有记录的科目名称,
添加到B表中的汇总科目字段,但是A表中的每个科目名称只在B表中添加一次,然后
再汇总A表中各个科目的借贷方金额,分别填入到B表的借贷方金额字段。
哈哈,好麻烦啊,实在麻烦的话,
说清楚怎么样添加科目名称也可以了
 
1. select 科目代码,sum(贷方),sum(借方) from a gropy by 科目代码
2. 汇总后追加道B表
 
select distinct 科目 from a
 
添加科目名称:
select distict A.(科目名称字段) from A left join B on A.(科目名称字段) <>B.(科目名称字段)
然后将结果加入B表

求金额总汇:
select sum(A.科目金额) from A left join B on A.科目名称=B.科目名称 group by A.科目名称
写入B
 
怎么加?
 
insert into b from 结果表
 
啊?要用到临时表啊?能不能不用?直接来搞?
 
insert into b (汇总科目,借方金额,贷方金额)
(select 借方科目 科目代码,sum(借方金额) 借方金额, 0 贷方金额 from a
group by 借方科目)
union
(select 贷方科目 科目代码,0 借方金额,sum(贷方金额) 贷方金额 from a
group by 贷方科目))
 
好!真好!我现在就试一下
svw0506,这些东西去哪里学?我没啥sql的资料,说得很简单的。
微软的sql server的帮助好罗嗦!
 
svw0506你的不得,出错 insert into语句错误,我加个values它又说select语句错误
 
我这样写:
insert into 科目汇总表(汇总月份,汇总科目代码,借方金额,贷方金额) select "2002-5-3",借方科目代码,sum(借方金额),0 from 凭证表 group by 借方科目代码
就可以,但是union另外一个select语句之后就出错了,到底这个union有什么奥妙呢?
 
在union前后语句前后加括号,再试一试。
 
insert into b (汇总科目,借方金额,贷方金额)
(select 借方科目 科目代码,sum(借方金额) 借方金额, 0 贷方金额 from a
group by 借方科目,0)
union
(select 贷方科目 科目代码,0 借方金额,sum(贷方金额) 贷方金额 from a
group by 0,贷方科目))
 
加括号我试过了,还是不得,正在研究中~~```````
 
试试这个:
insert into b (汇总科目,借方金额,贷方金额)
((select 借方科目 科目代码,sum(借方金额) 借方金额, 0 贷方金额 from a
group by 借方科目,0)
union
(select 贷方科目 科目代码,0 借方金额,sum(贷方金额) 贷方金额 from a
group by 0,贷方科目))
 
MichaelZhu,你的方法还是不掂,提示insert into语句错误,只要在第一个select语句之前
加括号就会有这样的错误提示
 
我试来试去~```````试来试去~```
发现如果只是单纯的select和union,那选择出来的结果是正确的,可是加上了insert into语句,
问题就出来了,提示insert into语句语法错误
看来奥妙在insert into语句里面!
 
建议做使用RXLIB的RxMemoryData做一个临时表,一切自然解决了,并且还能在一个表里插入当日,当月,当年,所有的合计等等.
 
RXLIB是什么?在哪里下载?
我准备到期了,快啊~~~~~~~~~~~~救人啊
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部