请问如下sql代码要如何修改?

cc 2017-10-29 08:17:54
一个职业可以有多个岗位,但一个员工最多只能加入某个职业的一个岗位。为了检测异常数据,写了sql代码并构造了一个违反上述规则的员工,他在数据库中加入了某个职业的两个岗位。sql查询结果的问题在于,返回的结果只有一列,只列出了员工参加的其中一个岗位(用gwbianhao列表示),我想要把他所参加的两个岗位的编号都列出来。要怎样改?谢谢。


select z.zybianhao,count(z.zybianhao),g.gwbianhao from gangwei g join zhiye z where z.zybianhao=g.zybianhao and g.gonghao='123' group by z.zybianhao having count(*)>1
...全文
408 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2017-10-30
  • 打赏
  • 举报
回复

select g.gonghao,g.zybianhao,g.gwbianhao 
 from gangwei g 
 inner join zhiye z on g.zybianhao=z.zybianhao
 where g.gonghao='123' 
 and exists(select 1 
            from gangwei g2 
			where g2.gonghao=g.gonghao
			and g2.gwbianhao<>g.gwbianhao)
二月十六 2017-10-30
  • 打赏
  • 举报
回复
SELECT  z.zybianhao ,
        z.zybianhao ,
        g.gwbianhao
FROM    gangwei g
        JOIN zhiye z ON z.zybianhao = g.zybianhao
                        AND g.gonghao = '123'
        JOIN ( SELECT   z.zybianhao ,
                        COUNT(z.zybianhao) ,
                        g.gwbianhao
               FROM     gangwei g
                        JOIN zhiye z ON z.zybianhao = g.zybianhao
                                        AND g.gonghao = '123'
               GROUP BY z.zybianhao
               HAVING   COUNT(*) > 1
             ) t ON z.zybianhao = t.zybianhao
                    AND g.gwbianhao = t.gwbianhao
cc 2017-10-30
  • 打赏
  • 举报
回复
有没有人了解?

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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