我遇到SQL查询问题
我有一张这样的表。
|| KDNRS || KUND || ADM || BS_1 || BS_2 || DATES_S ||
|| I-111111 || WKRST || A-008 || 0 || 0 || 18.09.2014 ||
|| I-222222 || EAAAAA || A-008 || 0 || 0 || 19.09.2014 ||
|| I-333333 || KENGAI || A-008 || 0 || 0 || 06.11.2014 ||
|| I-111111 || WKRST || A-008 || 0 || 0 || 22.09.2014 ||
|| I-444444 || DRSCH || A-008 || 0 || 0 || 24.09.2014 ||
|| I-222222 || EAAAAA || A-008 || 0 || 0 || 10.09.2014 ||
很抱歉显示它的方式不好。
现在我有两个条目。问题是,我想显示所有显示的列,但总结了相同的KDNRS和KUND。由于我的查询,ADM,BS_1和BS_2将始终相同。另外我也需要查询日期,但合并后显示哪个并不重要
我的第一个解决方案是
SELECT t_kds.KDNRS,
t_stam.KUND,
t_kds.ADM,
t_kds.BS_1,
t_kds.BS_2,
t_kds.DATE_S
FROM t_kds INNER JOIN t_stam ON t_kds.KDNRS = t_stam.KDNRS
GROUP BY t_kds.KDNRS, t_stam.KUND, t_kds.ADM, t_kds.BS_1, t_kds.BS_2, t_kds.DATE_S
WHERE (((t_kds.[ADM])=[Bitte ADM eingeben]) AND ((t_kds.BS_1)=0) AND ((t_kds.BS_2)=0) AND ((Max(t_kds.DATE_S))>#1/1/2014#))
ORDER BY t_kds.KDNRS;
但那没用。
之后我尝试了这个。
SELECT t_kds.KDNRS,
t_stam.KUND,
t_kds.ADM,
t_kds.BS_1,
t_kds.BS_2,
Max(t_kds.DATE_S) AS MaxDATE_S
FROM t_kds INNER JOIN t_stam ON t_kds.KDNRS = t_stam.KDNRS
GROUP BY t_kds.KDNRS, t_stam.KUND, t_kds.[ADM], t_kds.BS_1, t_kds.BS_2
HAVING (((t_kds.[ADM])='A-008') AND ((t_kds.BS_1)=0) AND ((t_kds.BS_2)=0) AND ((Max(t_kds.DATE_S))>#1/1/2014#))
ORDER BY t_kds.KDNRS;
使用此代码它似乎正在工作,但我不确定...这段代码好吗?我有多达1000条记录,用肉眼比较它们是不可能的
表结果是
|| KDNRS || KUND || ADM || BS_1 || BS_2 || DATES_S ||
|| I-222222 || EAAAAA || A-008 || 0 || 0 || 19.09.2014 ||
|| I-333333 || KENGAI || A-008 || 0 || 0 || 06.11.2014 ||
|| I-111111 || WKRST || A-008 || 0 || 0 || 22.09.2014 ||
|| I-444444 || DRSCH || A-008 || 0 || 0 || 24.09.2014 ||
答案 0 :(得分:0)
尝试此查询
SELECT t_kds.KDNRS,
t_stam.KUND,
t_kds.ADM,
t_kds.BS_1,
t_kds.BS_2,
SUBSTRING_INDEX(GROUP_CONCAT(t_kds.DATE_S ORDER BY t_kds.DATE_S DESC),',',1) AS date_val
FROM t_kds
GROUP BY t_kds.KDNRS