我有一个包含以下列的表。
DATE - CUSTOMER - COLOR - JOBNAME -ORDERNUM
我无法弄清楚如何编写查询以返回具有相同 JOBNAME但日期不同的行。
假设我有
1/9 AAA GREEN JOHN 1235
1/9 AAA GREEN JOHN 1236
1/9 AAA GREEN JOHN 1237
1/8 AAA GREEN JOHN 1238
1/9 BBB ORANGE MATT 1239
1/9 BBB ORANGE MATT 1240
1/12 CCC PINK BRETT 1241
1/5 DDD YELLOW JASON 1242
1/5 DDD YELLOW JASON 1243
我希望查询只返回
1/9 AAA GREEN JOHN 1235
1/9 AAA GREEN JOHN 1236
1/9 AAA GREEN JOHN 1237
1/8 AAA GREEN JOHN 1238
因为他们有相同的JOBNAME但日期不同。
答案 0 :(得分:1)
我首先要获取具有不同日期的作业列表:
select jobname
from table
group by jobname
having min(date) <> max(date);
如果您需要完整列表,请使用join
或in
或exists
:
select t.*
from table as t
where t.jobname in (select jobname
from table
group by jobname
having min(date) <> max(date)
);
答案 1 :(得分:0)
我是否完全误解了某些内容,或者您不仅仅是在寻找:
SELECT *
FROM MyTable
WHERE JobName = "JOHN"
因为这基本上就是您的结果集,并且它符合您的要求。