sql查询问题

青衫唯衣 2017-10-26 11:42:28

create table Message
(
ID1 varchar(10),
ClientID varchar(10),
Number int,
UserID varchar(10),
ResumeID varchar(10),
)
insert into Message select '1' ,'03', 1,'20','13'
insert into Message select '04','03',2,'20', '08'

create table Resume
(
ID2 varchar(10),
Name varchar(10),
UserID varchar(10)
)
insert into test2 select '13','李四','20'

insert into test2 select '08','张三','20'

create table Client
(
ID3 varchar(10),
Name varchar(10),
)
insert into test2 select '03'
insert into test2 select '10'

当 ClientID=03时
/*
要得到这样的报表:
id1 Number Name
13 1 '李四'
08 2 '张三'
*/

当 ClientID=10时
/*
要得到这样的报表:
id1 Number Name
13 0 '李四'
08 0 '张三'
*/
...全文
383 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
听雨停了 2017-10-30
  • 打赏
  • 举报
回复
引用 15 楼 青衫唯衣的回复:
[quote=引用 5 楼 qq_37170555 的回复:] [quote=引用 4 楼 qq_34411737 的回复:] [quote=引用 3 楼 qq_37170555 的回复:] [quote=引用 2 楼 青衫唯衣的回复:][quote=引用 1 楼 qq_37170555 的回复:] 等于10的时候为什么也要出来结果啊
抱歉 点引用的时候点错了 因为我要前面的数据 最主要的是 number的值 [/quote] 可是等于10的时候,表1里面没有对应的number啊[/quote] 对啊 所以我需要等于10的时候 number出来的是 0[/quote] 等于10的时候完全匹配不到数据啊,难道要把Resume的数据全部显示出来啊,然后把number改成0就行啊[/quote] 就是说 当 匹配不到数据时 Resume全部显示 number为0[/quote] 那你就用一个case when判断下应该就可以出来
青衫唯衣 2017-10-30
  • 打赏
  • 举报
回复
引用 5 楼 qq_37170555 的回复:
[quote=引用 4 楼 qq_34411737 的回复:] [quote=引用 3 楼 qq_37170555 的回复:] [quote=引用 2 楼 青衫唯衣的回复:][quote=引用 1 楼 qq_37170555 的回复:] 等于10的时候为什么也要出来结果啊
抱歉 点引用的时候点错了 因为我要前面的数据 最主要的是 number的值 [/quote] 可是等于10的时候,表1里面没有对应的number啊[/quote] 对啊 所以我需要等于10的时候 number出来的是 0[/quote] 等于10的时候完全匹配不到数据啊,难道要把Resume的数据全部显示出来啊,然后把number改成0就行啊[/quote] 就是说 当 匹配不到数据时 Resume全部显示 number为0
青衫唯衣 2017-10-30
  • 打赏
  • 举报
回复
引用 5 楼 qq_37170555 的回复:
[quote=引用 4 楼 qq_34411737 的回复:] [quote=引用 3 楼 qq_37170555 的回复:] [quote=引用 2 楼 青衫唯衣的回复:][quote=引用 1 楼 qq_37170555 的回复:] 等于10的时候为什么也要出来结果啊
抱歉 点引用的时候点错了 因为我要前面的数据 最主要的是 number的值 [/quote] 可是等于10的时候,表1里面没有对应的number啊[/quote] 对啊 所以我需要等于10的时候 number出来的是 0[/quote] 等于10的时候完全匹配不到数据啊,难道要把Resume的数据全部显示出来啊,然后把number改成0就行啊[/quote] 对 就是这样 能做到不
日月路明 2017-10-27
  • 打赏
  • 举报
回复
ID2和ID1的含义要交代一下,否则无法理解返回结果ID1要取ID2的值
日月路明 2017-10-27
  • 打赏
  • 举报
回复
本来想写下脚本,但是感觉楼主的设计有问题,至少没按套路来
OwenZeng_DBA 2017-10-27
  • 打赏
  • 举报
回复
另外你上面 的语句写得有问题,应该是这样,test2 多写了 而且client 表没有插入name值

 
create  table Message
(
ID1 varchar(10),
ClientID   varchar(10),
Number  int,
UserID varchar(10),
ResumeID varchar(10),
)
insert into Message select '1' ,'03', 1,'20','13'
insert into Message select '04','03',2,'20', '08'

create table Resume
(
ID2   varchar(10),
Name  varchar(10),
UserID varchar(10)
)
insert into Resume select '13','李四','20'

insert into Resume select '08','张三','20'

create table Client
(
ID3   varchar(10),
Name  varchar(10),
)
insert into Client select '03'
insert into Client select '10'
OwenZeng_DBA 2017-10-27
  • 打赏
  • 举报
回复
select  ResumeID,number,name from Message a ,Resume b where a.UserID=b.userid and a.ResumeID=b.id2
第一个要求可以这么写,不过你第二个要求client 和其他两个表没有什么关系,我觉得你一个修改下client表的设计
  • 打赏
  • 举报
回复
是不是 最后面那个 create table Client ( ID3 varchar(10), Name varchar(10), ) insert into test2 select '03' insert into test2 select '10' 下面的是不应是 insert into Client select '03','10' 这个地方不对。 这样的话 才能得到你 那个 ClientID=10时 的结果
nettman 2017-10-27
  • 打赏
  • 举报
回复
学习
青衫唯衣 2017-10-26
  • 打赏
  • 举报
回复
引用 1 楼 qq_37170555 的回复:
等于10的时候为什么也要出来结果啊
抱歉 点引用的时候点错了 因为我要前面的数据 最主要的是 number的值
听雨停了 2017-10-26
  • 打赏
  • 举报
回复
等于10的时候为什么也要出来结果啊
二月十六 2017-10-26
  • 打赏
  • 举报
回复
create table Client ( ID3 varchar(10), Name varchar(10), ) insert into test2 select '03' insert into test2 select '10' 这个字段和插入的数据不匹配
听雨停了 2017-10-26
  • 打赏
  • 举报
回复
可能是我不太理解你的意思哈,不知道你为啥要这样去做,有什么意义
听雨停了 2017-10-26
  • 打赏
  • 举报
回复
引用 4 楼 qq_34411737 的回复:
[quote=引用 3 楼 qq_37170555 的回复:] [quote=引用 2 楼 青衫唯衣的回复:][quote=引用 1 楼 qq_37170555 的回复:] 等于10的时候为什么也要出来结果啊
抱歉 点引用的时候点错了 因为我要前面的数据 最主要的是 number的值 [/quote] 可是等于10的时候,表1里面没有对应的number啊[/quote] 对啊 所以我需要等于10的时候 number出来的是 0[/quote] 等于10的时候完全匹配不到数据啊,难道要把Resume的数据全部显示出来啊,然后把number改成0就行啊
青衫唯衣 2017-10-26
  • 打赏
  • 举报
回复
引用 3 楼 qq_37170555 的回复:
[quote=引用 2 楼 青衫唯衣的回复:][quote=引用 1 楼 qq_37170555 的回复:] 等于10的时候为什么也要出来结果啊
抱歉 点引用的时候点错了 因为我要前面的数据 最主要的是 number的值 [/quote] 可是等于10的时候,表1里面没有对应的number啊[/quote] 对啊 所以我需要等于10的时候 number出来的是 0
听雨停了 2017-10-26
  • 打赏
  • 举报
回复
引用 2 楼 青衫唯衣的回复:
[quote=引用 1 楼 qq_37170555 的回复:] 等于10的时候为什么也要出来结果啊
抱歉 点引用的时候点错了 因为我要前面的数据 最主要的是 number的值 [/quote] 可是等于10的时候,表1里面没有对应的number啊

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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