这个语句怎么写?(在线等!)

eason2000 2004-09-22 09:09:33
select ddwid,sum(jiashhj) jiashhj,sum(chengbje*1.17) chengbje,sum(maoli) maoli into #A from pf_ckmx group by ddwid


select ddwid,sum(jiashhj) jiashhj,sum(chengbje*1.17) chengbje,sum(maoli) maoli into #b from pf_thmx group by ddwid


我要用一个语句查询上面两个表中的数据,但是两个临时表中的关联字段DDWID的值不相同。也就是在#A中有的DDWID,在#B中不一定有。
...全文
122 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yesterday2000 2004-09-22
  • 打赏
  • 举报
回复
----相加
SELECT
ISNULL (A.DDWID,b.ddwid ) as ddwid ,
isnull (a.jiashhj,0)+isnull (b.jiashhj,0) as jiashhj,
isnull (a.chengbje,0)+isnull (b.chengbje,0) as chengbje,
isnull (a.maoli,0)+isnull (b.maoli,0) as maoli

from (select ddwid,sum(jiashhj) jiashhj,sum(chengbje*1.17) chengbje,sum(maoli) maoli from pf_ckmx group by ddwid) a full join
(select ddwid,sum(jiashhj) jiashhj,sum(chengbje*1.17) chengbje,sum(maoli) maoli from pf_thmx group by ddwid) b
on a.ddwid=b.ddwid


ddwid jiashhj chengbje maoli
----------- ------- --------- -----
DDW00000001 5432.40 6355.9080 .00
DDW00000003 2735.32 462509.5644 335531.64
DDW00000004 10.00 2307.9888 1677.47
yesterday2000 2004-09-22
  • 打赏
  • 举报
回复
create table pf_ckmx (ddwid varchar (11),jiashhj decimal (12,2),chengbje decimal (12,2),maoli decimal (12,2))
create table pf_thmx (ddwid varchar (11),jiashhj decimal (12,2),chengbje decimal (12,2),maoli decimal (12,2))

insert into pf_ckmx
select 'DDW00000001',3768.20,3768.20,0.00 union
select 'DDW00000003',1367.66,197653.66,167765.82


insert into pf_thmx
select 'DDW00000001',1664.20,1664.20,.00 union
select 'DDW00000003',1367.66,197653.66,167765.82 union
select 'DDW00000004',10.00,1972.6434,1677.47

----相减
SELECT
ISNULL (A.DDWID,b.ddwid ) as ddwid ,
isnull (a.jiashhj,0)-isnull (b.jiashhj,0) as jiashhj,
isnull (a.chengbje,0)-isnull (b.chengbje,0) as chengbje,
isnull (a.maoli,0)-isnull (b.maoli,0) as maoli

from (select ddwid,sum(jiashhj) jiashhj,sum(chengbje*1.17) chengbje,sum(maoli) maoli from pf_ckmx group by ddwid) a full join
(select ddwid,sum(jiashhj) jiashhj,sum(chengbje*1.17) chengbje,sum(maoli) maoli from pf_thmx group by ddwid) b
on a.ddwid=b.ddwid

ddwid jiashhj chengbje maoli
----------- ------- --------- -----
DDW00000001 2104.00 2461.6800 .00
DDW00000003 .00 .0000 .00
DDW00000004 -10.00 -2307.9888 -1677.47

----相加
SELECT
ISNULL (A.DDWID,b.ddwid ) as ddwid ,
isnull (a.jiashhj,0)+isnull (b.jiashhj,0) as jiashhj,
isnull (a.chengbje,0)+isnull (b.chengbje,0) as chengbje,
isnull (a.maoli,0)+isnull (b.maoli,0) as maoli

from (select ddwid,sum(jiashhj) jiashhj,sum(chengbje*1.17) chengbje,sum(maoli) maoli from pf_ckmx group by ddwid) a full join
(select ddwid,sum(jiashhj) jiashhj,sum(chengbje*1.17) chengbje,sum(maoli) maoli from pf_thmx group by ddwid) b
on a.ddwid=b.ddwid


ddwid jiashhj chengbje maoli
----------- ------- --------- -----
DDW00000001 5432.40 6355.9080 .00
DDW00000003 .00 .0000 .00
DDW00000004 10.00 2307.9888 1677.47
yesterday2000 2004-09-22
  • 打赏
  • 举报
回复
SELECT
ISNULL (A.DDWID,b.ddwid ) as ddwid ,
isnull (a.jiashhj,0)-isnull (b.jiashhj,0) as jiashhj,
isnull (a.chengbje,0)-isnull (b.chengbje,0) as chengbje,
isnull (a.maoli,0)-isnull (b.maoli,0) as maoli

from (select ddwid,sum(jiashhj) jiashhj,sum(chengbje*1.17) chengbje,sum(maoli) maoli from pf_ckmx group by ddwid) a full join
(select ddwid,sum(jiashhj) jiashhj,sum(chengbje*1.17) chengbje,sum(maoli) maoli from pf_thmx group by ddwid) b
on a.ddwid=b.ddwid
yesterday2000 2004-09-22
  • 打赏
  • 举报
回复
我想不是相加吧
一个是批发出库明细pf_ckmx
一个是批发退货明细pf_thmx
我想应该是相减吧
如果相加了
单位金额就不对了吧!!!
yesterday2000 2004-09-22
  • 打赏
  • 举报
回复
上面写错了

---

SELECT
ISNULL (A.DDWID,b.ddwid ) as ddwid ,
isnull (a.jiashhj,0)+isnull (b.jiashhj,0) as jiashhj,
isnull (a.chengbje,0)+isnull (b.chengbje,0) as chengbje,
isnull (a.maoli,0)+isnull (b.maoli,0) as maoli

from #a full join
#b
on a.ddwid=b.ddwid
eason2000 2004-09-22
  • 打赏
  • 举报
回复
字段是一样的。但是数据不一致。

----------------- #a数据
DDW00000001 3768.20 3768.2190 .00
DDW00000003 3431.45 2941.2396 418.98

--------------#b 数据

DDW00000001 1664.20 1664.2080 .00
DDW00000003 1367.66 197653.6692 167765.82
DDW00000004 10.00 1972.6434 1677.47


我查询出来的数据要求DDW00000001,DDW00000003的数据进行汇总,同时也要把DDW00000004的数据
也查询出来。



谢谢了
yesterday2000 2004-09-22
  • 打赏
  • 举报
回复
SELECT
ISNULL (A.DDWID,b.ddwid ) as ddwid ,
isnull (a.jiashhj,0)+isnull (a.chengbje,0) as chengbje,
isnull (a.maoli,0)+isnull (b.jiashhj,0) as maoli,
isnull (a.chengbje,0)+isnull (b.chengbje,0) as chengbje
from #a full join
#b
on a.ddwid=b.ddwid
yesterday2000 2004-09-22
  • 打赏
  • 举报
回复
可是你插入临时表的数据都是一样的!!
eason2000 2004-09-22
  • 打赏
  • 举报
回复
如果两个表中的DDWID相等,那么汇总JIASHHJ,CHENGBJE,MAOLI。不相等,提取原来的数据
yesterday2000 2004-09-22
  • 打赏
  • 举报
回复
具体不知道你想达到什么目的

SELECT
ISNULL (A.DDWID,b.ddwid ) as ddwid ,
isnull (a.jiashhj,0) as jiashhj,
isnull (a.chengbje,0) as chengbje,
isnull (a.maoli,0) as maoli,
isnull (b.jiashhj,0) as bjiashhj,
isnull (b.chengbje,0) as bchengbje,
isnull (b.maoli,0) as bmaoli
from #a full join
#b
on a.ddwid=b.ddwid
chinaandys 2004-09-22
  • 打赏
  • 举报
回复
select a.* from #A a left join #B b
on a.DDWID=b.DDWID
chinaandys 2004-09-22
  • 打赏
  • 举报
回复
select a.* from #A aleft join #B b
on a.DDWID=b.DDWID
lxysjl 2004-09-22
  • 打赏
  • 举报
回复
能说出一些数据出来吗.把想要的结果说出来
eason2000 2004-09-22
  • 打赏
  • 举报
回复
问题解决。谢谢各位

34,594

社区成员

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

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