Tsql两表连接查询问题

askdotwind 2017-08-13 02:58:37
具体表结构如下:
A 公告表gonggao:
id | name | content | workcode
1 公告1 公告内容1 11
2 公告2 公告内容2 22
3 公告3 公告内容3 33
4 公告4 公告内容4 44
B流程表work:
id | workcode | workname | workstatus | time
1 11 流程1 审核 20170801
2 11 流程1 签发 20170802
3 22 流程2 审核 20170801
4 22 流程2 签发 20170802
5 22 流程2 发布 20170803

现在想列出公告信息的同时,也列表关联的最新流程的信息,语句如下:
select a.id, a.name, a.content, b.workcode, b.workname,b.workstatus,b.time from gonggao a,work b where
a.workcode = b. workcode

结果集为:(有重复的公告数据)
1 公告1 公告内容1 11 流程1 审核 2017-08-01 00:00:00.000
1 公告1 公告内容1 11 流程1 签发 2017-08-02 00:00:00.000
2 公告2 公告内容2 22 流程2 审核 2017-08-01 00:00:00.000
2 公告2 公告内容2 22 流程2 签发 2017-08-02 00:00:00.000
2 公告2 公告内容2 22 流程2 发布 2017-08-03 00:00:00.000

实际想要的结果集是:列出无重复的公告数据,并附加最新的流程状态信息,如下理想结果集:

id name content workcode
1 公告1 公告内容1 11 流程1 签发 2017-08-02 00:00:00.000
2 公告2 公告内容2 22 流程2 发布 2017-08-03 00:00:00.000
3 公告3 公告内容3 33 null null null
4 公告4 公告内容4 44 null null null

请问如何写这样Tsql的两表连接查询语句呢?先谢过了!



...全文
100 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
那你就给 审核 ,签发 发布 给个 id 然后取大值
askdotwind 2017-08-13
  • 打赏
  • 举报
回复
还是有问题,显示结果如下: 1 公告1 公告内容1 11 11 流程1 审核 2017-08-02 00:00:00.000 2 公告2 公告内容2 22 22 流程2 审核 2017-08-03 00:00:00.000 3 公告3 公告内容3 33 NULL NULL NULL NULL 4 公告4 公告内容4 44 NULL NULL NULL NULL 注意:第二条记录的流程状态应该是发布哦 我知道你用了分组功能,但是我改了一会还是改不过来,多谢多谢!
  • 打赏
  • 举报
回复
写错了。。 WITH T2 AS( SELECT MAX(WORKCODE) AS WORKCODE, MAX(WORKNAME) AS WORKNAME, WORKCODE,MAX(WORKSTATUS) AS WORKSTATUS, MAX(TIME) AS TIME FROM A group by WORKCODE) SELECT A.*,T2.* FROM A LEFT JOIN T2 ON A.WORKCODE =T2.WORKCODE
askdotwind 2017-08-13
  • 打赏
  • 举报
回复
多谢,我的环境是sqlserver,运行之后报错哦 选择列表中的列 'work.workcode' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
  • 打赏
  • 举报
回复
WITH T2 AS( SELECT MAX(WORKCODE) AS WORKCODE, MAX(WORKNAME) AS WORKNAME, WORKCODE,MAX(WORKSTATUS) AS WORKSTATUS, MAX(TIME) AS TIME FROM A) SELECT A.*,T2.* FROM A LEFT JOIN T2 ON A.WORKCODE =T2.WORKCODE

22,294

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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