在线急等一SQL语句!!!

victory610 2009-07-12 11:04:23
现有一个jgsyzc表,表结构如下:
zqdm eps93 eps94 eps95
1 0.10 0.11 0.12
2 0.13 0.14 0.15
3 0.16 0.17 0.18
4 0.19 0.20 0.21
5 0.22 0.23 0.24
6 0.25 0.26 0.27

另有两个表y1993和y1994
y1993表结构如下: y1994表结构如下:
zqdm hbl93 hblbfh93 zqdm hbl94 hblbfh94
1 0.30 0.31 2 0.34 0.35
2 0.32 0.33 4 0.36 0.37
3 0.34 0.35 5 0.38 0.39

现在我怎样通过查询语句得到下面的这张表:
zqdm hbl93 hblbfh93 hbl94 hblbfh94 eps93 eps94 eps95
1 0.30 0.31 null null 0.10 0.11 0.12
2 0.32 0.33 0.34 0.35 0.13 0.14 0.15
3 0.34 0.35 null null 0.16 0.17 0.18
4 null null 0.36 0.37 0.19 0.20 0.21
5 null null 0.38 0.39 0.22 0.23 0.24
6 null null null null 0.25 0.26 0.27

在线等,非常感谢!
...全文
48 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
victory610 2009-07-12
  • 打赏
  • 举报
回复
非常感谢大家的帮助,这个问题已经顺利解决了,我结贴了。
feixianxxx 2009-07-12
  • 打赏
  • 举报
回复
if object_id('[jgsyzc]') is not null drop table [jgsyzc]
create table [jgsyzc]([zqdm] int,[eps93] numeric(3,2),[eps94] numeric(3,2),[eps95] numeric(3,2))
insert [jgsyzc]
select 1,0.10,0.11,0.12 union all
select 2,0.13,0.14,0.15 union all
select 3,0.16,0.17,0.18 union all
select 4,0.19,0.20,0.21 union all
select 5,0.22,0.23,0.24 union all
select 6,0.25,0.26,0.27
if object_id('[y1993]') is not null drop table [y1993]
create table [y1993]([zqdm] int,[hbl93] numeric(3,2),[hblbfh93] numeric(3,2))
insert [y1993]
select 1,0.30,0.31 union all
select 2,0.32,0.33 union all
select 3,0.34,0.35


if object_id('[y1994]') is not null drop table [y1994]
create table [y1994]([zqdm] int,[hbl94] numeric(3,2),[hblbfh94] numeric(3,2))
insert [y1994]
select 2,0.34,0.35 union all
select 4,0.36,0.37

go
select a.zqdm,[hbl93],hblbfh93,hbl94,hblbfh94,eps93,eps94,eps95
from jgsyzc a left join y1993 b on a.zqdm=b.zqdm
left join y1994 c on a.zqdm=c.zqdm



(6 行受影响)

(3 行受影响)

(2 行受影响)
zqdm hbl93 hblbfh93 hbl94 hblbfh94 eps93 eps94 eps95
----------- --------------------------------------- --------------------------------------- --------------------------------------- --------------------------------------- --------------------------------------- --------------------------------------- ---------------------------------------
1 0.30 0.31 NULL NULL 0.10 0.11 0.12
2 0.32 0.33 0.34 0.35 0.13 0.14 0.15
3 0.34 0.35 NULL NULL 0.16 0.17 0.18
4 NULL NULL 0.36 0.37 0.19 0.20 0.21
5 NULL NULL NULL NULL 0.22 0.23 0.24
6 NULL NULL NULL NULL 0.25 0.26 0.27

(6 行受影响)
Tomzzu 2009-07-12
  • 打赏
  • 举报
回复
左连接, 返回表jgsyzc所有的记录, 用zpdm与zpdm做条件, y1993, y1994没有与之匹配的将以NULL返回

select z.zqdm, m.hb193, m.hblbfh93, n.hbl94, n.hblbfh94, z.eps93, z.eps94, z.eps95
from jgsyzc as z
left join y1993 as m
on z.zqdm = m.zqdm
left join y1994 as n
on z.zqdm = n.zqdm
SQL77 2009-07-12
  • 打赏
  • 举报
回复
SELECT 
A.*,
B.hbl93 ,B.hblbfh93,
C.hbl93 ,C.hblbfh93
FROM
jgsyzc A
LEFT JOIN y1993 B ON A.zqdm=B.zqdm
LEFT JOIN y1994 C ON A.zqdm=C.zqdm
jiangshun 2009-07-12
  • 打赏
  • 举报
回复

-----------------------------------------

--> 测试时间:2009-07-12
--> 我的淘宝:http://shop36766744.taobao.com/

--------------------------------------------------

if object_id('[jgsyzc]') is not null drop table [jgsyzc]
create table [jgsyzc]([zqdm] int,[eps93] numeric(3,2),[eps94] numeric(3,2),[eps95] numeric(3,2))
insert [jgsyzc]
select 1,0.10,0.11,0.12 union all
select 2,0.13,0.14,0.15 union all
select 3,0.16,0.17,0.18 union all
select 4,0.19,0.20,0.21 union all
select 5,0.22,0.23,0.24 union all
select 6,0.25,0.26,0.27


if object_id('[y1993]') is not null drop table [y1993]
create table [y1993]([zqdm] int,[hbl93] numeric(3,2),[hblbfh93] numeric(3,2))
insert [y1993]
select 1,0.30,0.31 union all
select 2,0.32,0.33 union all
select 3,0.34,0.35


if object_id('[y1994]') is not null drop table [y1994]
create table [y1994]([zqdm] int,[hbl94] numeric(3,2),[hblbfh94] numeric(3,2))
insert [y1994]
select 2,0.34,0.35 union all
select 4,0.36,0.37

select * from [jgsyzc]
select * from [y1993]
select * from [y1994]

select zqdm=isnull(A.zqdm,C.zqdm),hbl93,hblbfh93,hbl94,hblbfh94,eps93,eps94,eps95
from y1993 B right join jgsyzc A on A.zqdm=B.zqdm left join y1994 C on C.zqdm=A.zqdm

/*
zqdm hbl93 hblbfh93 hbl94 hblbfh94 eps93 eps94 eps95
----------- ----- -------- ----- -------- ----- ----- -----
1 .30 .31 NULL NULL .10 .11 .12
2 .32 .33 .34 .35 .13 .14 .15
3 .34 .35 NULL NULL .16 .17 .18
4 NULL NULL .36 .37 .19 .20 .21
5 NULL NULL NULL NULL .22 .23 .24
6 NULL NULL NULL NULL .25 .26 .27

(所影响的行数为 6 行)


*/

drop table jgsyzc,y1993,y1994
ChinaJiaBing 2009-07-12
  • 打赏
  • 举报
回复


select a.zqdm,b.hb193,b.hblbfh93,c.hbl94,c.hblbfh94,a.eps93,a.eps94,a.eps95 from jgsyzc a left join y1993 b on a.zqdm=b.zqdm
left join y1994 c on a.zqdm=c.zqdm

34,873

社区成员

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

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