SQL SERVER 2000 主从表

nimeide1234567890 2016-07-04 11:37:16
SQL SERVER 2000的数据库

主表的id和从表的djbh关联
主表的字段和数据如下:je1是已付金额,je是单据总金额,bh是单据号,gys是供应商编号
id gys je1 je bh
1 001 0 49 DD000001
2 002 1 2 DD000002

从表djbh的字段和数据如下:sl 数量,je 金额 , spbh 商品编号
djbh sl je spbh
1 1.1 11 SP001
1 1.2 12 SP002
1 2.6 26 SP003
2 0.2 2 SP004
----------------------------------
我要显示成结果如下:
供应商 单据号 商品编号 数量 金额 已付金额 应付金额
001 DD000001 SP001 1.1 11
001 DD000001 SP002 1.2 12
合计 49 0 49
002 DD000002 SP003 2.6 26
002 DD000002 SP004 0.2 2
合计 28 20 8

主表和从表都有可能和其它表关联
...全文
136 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
nimeide1234567890 2016-07-05
  • 打赏
  • 举报
回复
你真是细心,我更正下 我要显示成结果如下: 供应商 单据号 商品编号 数量 金额 已付金额 应付金额 001 DD000001 SP001 1.1 11 001 DD000001 SP002 1.2 12 001 DD000001 SP003 2.6 26 合计 49 0 49 002 DD000002 SP004 0.2 2 合计 2 1 1
唐诗三百首 2016-07-05
  • 打赏
  • 举报
回复
引用 5 楼 luojianfeng 的回复:
已付金额是主表已经有的
主表的已付金额好像是1喔? 请问希望结果中, DD000002合计中的已付金额=2的原始数据从何而来?
nimeide1234567890 2016-07-05
  • 打赏
  • 举报
回复
已付金额是主表已经有的
唐诗三百首 2016-07-05
  • 打赏
  • 举报
回复
请问DD000002合计中的已付金额=2的原始数据从何而来?
nimeide1234567890 2016-07-05
  • 打赏
  • 举报
回复
我要显示成结果如下: 供应商 单据号 商品编号 数量 金额 已付金额 应付金额 001 DD000001 SP001 1.1 11 001 DD000001 SP002 1.2 12 001 DD000001 SP003 2.6 26 合计 49 0 49 002 DD000002 SP004 0.2 2 合计 2 2 0
唐诗三百首 2016-07-05
  • 打赏
  • 举报
回复

select 供应商,'单据号'=case when 商品编号<>'合计' then 单据号0 else '' end,商品编号,数量,金额,已付金额,应付金额
  from (
select '供应商'=a.gys,
           '单据号0'=a.bh,
           '商品编号'=b.spbh,
           '数量'=b.sl,
           '金额'=b.je,
           '已付金额'=null,
           '应付金额'=null
  from [主表] a
  inner join [从表] b on a.id=b.djbh
union all
select '',bh,'合计',null,je,je1,je-je1
  from [主表]) t
order by 单据号0,商品编号

/*
供应商        单据号                  商品编号       数量                                      金额          已付金额        应付金额
---------- -------------------- ---------- --------------------------------------- ----------- ----------- -----------
001        DD000001             SP001      1.1                                     11          NULL        NULL
001        DD000001             SP002      1.2                                     12          NULL        NULL
001        DD000001             SP003      2.6                                     26          NULL        NULL
                                合计         NULL                                    49          0           49
002        DD000002             SP004      0.2                                     2           NULL        NULL
                                合计         NULL                                    2           1           1

(6 row(s) affected)
*/
nimeide1234567890 2016-07-05
  • 打赏
  • 举报
回复
高人啊,高人啊
nimeide1234567890 2016-07-04
  • 打赏
  • 举报
回复
引用 1 楼 ap0405140 的回复:
请问单据DD000001为何是2行? 在从表djbh中是3行喔.
对,对,对,我搞错了,多谢大神指正
唐诗三百首 2016-07-04
  • 打赏
  • 举报
回复
请问单据DD000001为何是2行? 在从表djbh中是3行喔.

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧