首页 新闻 会员 周边

想问下大家一个SQL 去重复的问题

0
悬赏园豆:20 [已解决问题] 解决于 2015-01-15 08:55

DISTINCT  只能显示一个字段,我现在要显示所有的字段。

 

SELECT * FROM dbo.workflow_trans t
WHERE t.id IN
(SELECT max(id) FROM workflow_trans GROUP BY process_instance_id)

这样是可以去重复,但是条件必须要加到in里面才可以,handler_name是参数,我想做成视图,如果是做成存储过程是可以解决这个问题。

最初的、天空的主页 最初的、天空 | 初学一级 | 园豆:40
提问于:2014-11-24 10:06
< >
分享
最佳答案
0
Create view_workflow_trans as

SELECT * FROM dbo.workflow_trans t WHERE t.id = (SELECT max(id) FROM workflow_trans where id=t.id)
收获园豆:20
邀月 | 高人七级 |园豆:25475 | 2014-11-25 09:51

你这个方法不行。

最初的、天空 | 园豆:40 (初学一级) | 2014-11-27 10:39

@最初的、天空: 怎么不行?
dbo.workflow_trans这个表的主键是ID么?

邀月 | 园豆:25475 (高人七级) | 2014-11-28 09:16
其他回答(5)
0

你说的都对,那么问题来了,你的问题是什么呢?

爱编程的大叔 | 园豆:30839 (高人七级) | 2014-11-24 10:08

sorry 可能描述的不清楚,我想做成试图,因为查询出的结果要做成一张表,与另一个表关联。 写成存储过程比较麻烦。 extjs中不好自定义排序。

支持(0) 反对(0) 最初的、天空 | 园豆:40 (初学一级) | 2014-11-24 11:20
0

额,你这个问题问的好,去重复的问题你都解决了,你想在视图里面 传参数就直说啊...

既然存储过程可以解决你这个问题,你为什么非要建成视图了,简单问题复杂化了

建议一:视图你照样写,然后对数据在后台代码进行参数传递筛选,或者你去研究下视图里面怎么传你要的人名

建议二:存储过程

风醉 | 园豆:1197 (小虾三级) | 2014-11-24 11:02

因为查询出的结果要做成一张表。

支持(0) 反对(0) 最初的、天空 | 园豆:40 (初学一级) | 2014-11-24 11:18

@最初的、天空: 对查询结果集做筛选,就是你想要的表了

支持(0) 反对(0) 风醉 | 园豆:1197 (小虾三级) | 2014-11-24 11:22
0

这样也行:

select distinct(instance_id,instancename,sort,……) from archflow where …… 

你试试看。

Jaryleely | 园豆:367 (菜鸟二级) | 2014-11-25 09:12
0

看你去什么啊重啊  分组也可以啊??   row number(也可以啊 ) 

我是糖糖 | 园豆:446 (菜鸟二级) | 2014-11-30 14:29

 row number 是个好方法

支持(0) 反对(0) Froyo | 园豆:494 (菜鸟二级) | 2014-12-03 13:05
0

group by 中再加一个handler_name 就OK了

最初的、天空 | 园豆:40 (初学一级) | 2014-12-01 17:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册