关于一个SQL语句

gsmlove 2009-01-04 11:04:38
a表:
ID 凭证号
1 1001
2 1002
3 1003
4 1004

b表:
凭证号
ID 借方 贷方
1 20 -20
2 100 -100
3 50 -50
4 200 -200

现在要达到这个效果
要求结果:
ID 凭证号 借方 贷方
1 1001 20
1 1001 -20
2 1002 100
2 1002 -100
3 1003 50
3 1003 -50
4 1004 200
4 1004 -200

该怎样写SQL
...全文
103 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
journeydj 2009-01-04
  • 打赏
  • 举报
回复
......刚才看怎么没人,回复后出来这么多?
cmalaya 2009-01-04
  • 打赏
  • 举报
回复
表的设计有问题,A表和B表并无关联性
journeydj 2009-01-04
  • 打赏
  • 举报
回复
select * from
(
select a.ID,a.凭证号,b.借方,null as 贷方 from a left join b on a.ID=b.ID
union
select a.ID,a.凭证号,null as 借方,b.贷方 from a left join b on a.ID=b.ID
)

order by ID
xxyping 2009-01-04
  • 打赏
  • 举报
回复
用连接吧!!,看看下面我写的这个。其他也是有的

SELECT ISNULL(m.ID,n.ID), m.Name, m.Address, n.Phone, n.Money FROM ( SELECT A.a AS ID, B.b AS Name, C.c AS Address FROM A,B,C ) AS m FULL JOIN ( SELECT A.a AS ID, C.d AS Phone, C.e AS Money FROM A,C ) AS n ON m.ID=n.ID
hongqi162 2009-01-04
  • 打赏
  • 举报
回复
select * from(
select ID,凭证号,借方,0 as 贷方 from a表 a,b表 b where a.id=b.id
union
select ID,凭证号,0 as 借方,贷方, from a表 a,b表 b where a.id=b.id
) order by id;
feiyun0112 2009-01-04
  • 打赏
  • 举报
回复
selct a.id,a.凭证号 ,case when a.借贷=0 then b.借方 else null end as 借方,case when a.借贷=1 then b.贷方 else null end as 贷方
(
select 0 as 借贷,* from a
union all
select 1 as 借贷,* from a
)
a
inner join b on a.id=b.id

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

http://feiyun0112.cnblogs.com/
XBodhi. 2009-01-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qiaohuyue 的回复:]
得出的结果为什么你想要这个结果啊, 那看着不是很别扭吗,
[/Quote]
你那个显示的格式和他的一样吗,我感觉不一样啊,
XBodhi. 2009-01-04
  • 打赏
  • 举报
回复
我给你看看, 看能写出来吗, 你是想要存储过程 ,还是 别的,
xfreyes 2009-01-04
  • 打赏
  • 举报
回复
select a.ID,a.凭证号,b.借方,b.贷方 from a left join b on a.ID=b.ID
XBodhi. 2009-01-04
  • 打赏
  • 举报
回复
得出的结果为什么你想要这个结果啊, 那看着不是很别扭吗,

110,565

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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