我希望从中选择3列数据,请参阅下面的示例
WONO EQMFSN DOCDT8
8523248 02T300118 20160616
8523248 02T300118 20160621
8523248 02T300118 20160620
8523249 02T300118 20160620
8523249 02T300118 20160620
2414888 02T300118 20161109
2414888 02T300118 20161109
2414888 02T300118 20161109
2414888 02T300118 20161109
1127111 02T300118 20170321
8523253 02T300119 20160620
8523253 02T300119 20160625
8523253 02T300119 20160624
8523254 02T300119 20160624
8523254 02T300119 20160624
2414893 02T300119 20161113
2414893 02T300119 20161113
2414893 02T300119 20161113
2414893 02T300119 20161113
1127116 02T300119 20170325
我想为MIN DOCDT8选择不同的EQMFSN和WONO
所以我的输出是:
EQMFSN WONO
02T300118 8523248
02T300119 8523253
我试过了:
Select
T.EQMFSN
, min( T.docdt8)
, T.wono
From
T
Group By
T.EQMFSN
, T.wono
数据在IBM DB2中,但我在Excel中通过odbc / as400连接创建此查询。
答案 0 :(得分:2)
以下是我们问题的解决方案:
SELECT `EQMFSN`,`WONO`
FROM TAble1
WHERE `DOCDT8` IN (
SELECT MIN(`DOCDT8`)
FROM TAble1
GROUP BY `EQMFSN`
)
GROUP BY `EQMFSN`
<强>输出:强>
EQMFSN WONO
02T300118 8523248
02T300119 8523253
您的查询演示:
答案 1 :(得分:2)
从您想要的输出中,您想要询问每个EQMFSN字段的最小值:
理想情况下,您应该尝试通过对每个EQMFSN进行分组来获取每个EQMFSN的最小DOCDT8,然后将其连接回原始表以获得相应的WONO。 这应该匹配
SELECT EQMFSN, WONO
FROM t
INNER JOIN
(SELECT EQMFSN, min(DOCDT8) as mindoc from t group by EQMFSN) t2
on t2.EQMFSN = t.EQMFSN
and t2.mindoc = t.DOCDT8;
答案 2 :(得分:0)
根据您的描述,您似乎想要:
EQMFSN WONO
02T300118 8523248
唯一需要注意的是,这会回来:
'20160616'
因为最短日期是flow check
,并且该日期只有一条记录。