以下是我的数据示例:
CLIENT_ATTRIBUT:
ID_CLIENT | DATE_CLIENT | ATTRIBUT
----------+-------------+---------
000000001 | 2010:03:01 | 0000010
----------+-------------+---------
000000001 | 2010:02:16 | 0000010
----------+-------------+---------
000000001 | 2010:03:04 | 0000011
----------+-------------+---------
000000002 | 2010:03:01 | 0001000
----------+-------------+---------
客户端:
ID_CLIENT | NOM_MARITAL |
----------+-------------+
000000001 | PANTROMANI |
----------+-------------+
000000002 | ELLOUQUIER |
----------+-------------+
对于表"CLIENT_ATTRIBUT“中的每个ID_CLIENT,我想获取:
ID_CLIENT,max(DATE_CLIENT)及其对应的"ATTRIBUT“和"NOM_MARITAL”
因此,在上面的示例中:
ID_CLIENT | DATE_CLIENT | ATTRIBUT | NOM_MARITAL |
----------+-------------+----------+-------------+
000000001 | 2010:03:04 | 0000011 | PANTROMANI |
----------+-------------+----------+-------------+
000000002 | 2010:03:01 | 0001000 | ELLOUQUIER |
(我正在使用Mysql,但我猜它与任何数据库系统都不应该有太大不同)
发布于 2010-03-02 21:16:33
您应该能够使用子查询,如下所示:
SELECT
client.id_client,
sub_query.date_client,
client_attribut.attribut,
client.nom_marital
FROM
client
INNER JOIN
(SELECT
client_attribut.id_client,
MAX(client_attribut.date_client) as date_client
FROM
client_attribut
GROUP BY
client_attribut.id_client)
AS sub_query ON (sub_query.id_client = client.id_client)
INNER JOIN
client_attribut ON (client_attribut.id_client = sub_query.id_client AND
client_attribut.date_client = sub_query.date_client);
https://stackoverflow.com/questions/2363237
复制相似问题