各位高手帮忙看看这个SQL语句怎么写?表结构是浪潮的,不知道应该怎样用DELPHI实现以下功能?没分了,各位帮帮忙!(30分)

  • 主题发起人 主题发起人 whxxr
  • 开始时间 开始时间
W

whxxr

Unregistered / Unconfirmed
GUEST, unregistred user!
希望各位高手多多指教,小弟不胜感激!谢谢!
我有二张表
zwkmzd(科目字典)0表示不明细,1表示明细
kmbh kmmc mx js
4101 生产成本 0 1
410101 A产品 0 2
41010101 料 1 3
41010102 工 1 3
41010103 费 1 3
410102 B产品 0 2
41010201 料 1 3
41010202 工 1 3
41010203 费 1 3

zwkmje(科目金额)
kmbh qcye jffs dffs dqye
4101 660 660
410101 600 600
41010101 100 100
41010102 200 200
41010103 300 300
410102 60 60
41010201 10 10
41010202 20 20
41010203 30 30
我要实现查询结果如下:
科目编号 期初金额 料 工 费 合计
410101(A产品) 100 200 300 600
410102(B产品) 10 20 30 60
合计: 110 220 330 660
 
如果查询科目为4101,可以使用如下方法
先查处如下结果
select substring(kmbh, 1, 6) as kmbh , substring(kmbh,7, 2) as bh,
qcye, dqye from kmbh
作为一视图a或可直接从中进行子查询的建立
然后再进行如下查询
sql = 'select kmbh, sum(qcye)'
将所有编号查出后再添加下面的语句:
for i:= 1 to bhcount do
sql = sql + ', sum(isnull(case when bh='''+bh+''' then dqje else 0 end,0)) as dqye'+bh
对于合计记录,可以增加union子句
也可以对Query增加UpdateSQL控件,将查询结果查询后写入合计值
for i
 
后退
顶部