我不知道从许多具有相同id并与另一个表连接的记录中获得最大记录值。我希望有人能在这里帮我。
这张桌子:
order_id
517成本
617B.=.
14/T5109.1-1988技术技术
617 /617/T1455.5-1997商业合同转嫁性、转嫁性、转轨性
我想要的结果是这样的:
order_id
517商品
617/T1459.6-1996商业、商业、金融、金融、商业、金融、金融等行业的商业、金融、金融等行业的商业、金融等行业的发展
我尝试了这个查询,但是它只给出了一个结果:
WITH t AS
(SELECT x.order_id,x.name,x.extern_order_status as extern,y.result1, y.result2, y.result3,
t_logging_max.xd1 as max_date,
p_agent_admin.username as admin,
MAX(y.seq) AS seq2
FROM t_order_demand x
LEFT OUTER JOIN
(
SELECT id,xn1, MAX(xd1) AS xd1
FROM t_logging
GROUP BY id,xn1
) t_logging_max ON x.order_id = t_logging_max.id
LEFT JOIN
(
SELECT agent_id,username
FROM p_agent
GROUP BY agent_id,username
) p_agent_admin ON t_logging_max.xn1 = p_agent_admin.agent_id
JOIN t_order_log y
ON x.order_id = y.order_id
and y.order_id LIKE '%10%'
GROUP BY x.order_id,x.name,x.extern_order_status,y.result1, y.result2,y.result3,t_logging_max.xd1,p_agent_admin.username)
SELECT * FROM t WHERE (t.seq2) IN (SELECT MAX(tt.seq2) FROM t tt);实际上,必须有超过2个id有%10%的记录
希望你能帮我。谢谢。
发布于 2014-12-29 02:48:47
Group by与Max Aggregate一起工作。除了Admin列,该列包含一个varchar值。
SELECT order_id,
NAME,
Max(result1) result1,
Max(result2) result2,
Max(result3) result3,
Max(max_date) max_date,
Max(admin) admin,
Max(seq2) seq2,
Max(extern) extern
FROM tablename
GROUP BY order_id,
NAME https://stackoverflow.com/questions/27682770
复制相似问题