我一直试图在没有帖子的情况下解决这个问题,但我找不到合适的答案......
我有一个SALE-Table和一个APPOINTMENT-Table。 两者都是coloumn sale_id。 在APPOINTMENT中是do_by(日期)列,每个sale_id可以包含多个条目。
我需要的是NEXT约会PER匹配sale_id。 STH。像这样:
appointment_id | sale_id | do_by
--------------------------------------
1365 | 160 | 27.05.2014
2546 | 173 | 29.05.2014
5483 | 265 | 01.06.2014
到目前为止,我的查询只给了我最小的do_by ALL ...
SELECT a.appointment_id, a.do_by, s.sale_id
FROM [Askus7].[CRM7].[APPOINTMENT] a, [Askus7].[CRM7].[SALE] s
WHERE (s.sale_id = a.sale_id) AND a.do_by =
(
SELECT MIN(a2.do_by)
FROM [Askus7].[CRM7].[APPOINTMENT] a2, [Askus7].[CRM7].[SALE] s2
WHERE s2.sale_id = a2.sale_id
AND s.sale_id = a.sale_id
)
谢谢你的帮助!
答案 0 :(得分:1)
那样的东西? (另)
SELECT a.appointment_id, ms.do_by, a.sale_id
(
SELECT a2.sale_id as sale_id, MIN(a2.do_by) as do_by
FROM [Askus7].[CRM7].[APPOINTMENT] a2 JOIN [Askus7].[CRM7].[SALE] s2
ON a2.sale_id=s2.sale_id
GROUP BY a2.sale_id
)ms
JOIN [Askus7].[CRM7].[APPOINTMENT] a
ON a.sale_id = ms.sale_id and a.do_by = ms.do_by;
警告:如果您没有索引do_by列并且您的APPOINTMENT表很大,则查询可能会很慢。