2011-04-23 7 views
1

J'ai une table comme ceci:Comment extraire la dernière ligne

Item Serial_No Grade Size Location Date 
CQ35 A243911  4 36 A   20110127 
CQ35 A243911  4 36 B   20110329 
CQ35 A243911  4 36 C   20110330 
CQ38 A244567  3 38 A   20110127 
CQ35 A244567  3 38 B   20110128 
CQ38 A244567  3 38 C   20110129 
CQ35 A244567  3 38 D   20110130 
CQ40 A244568  3 41 A   20110127 
CQ40 A244568  3 41 B   20110129 
CQ36 A244570   2 37 A   20110125 

Les résultats attendus SHD ressemblent à ceci en utilisant SQL:

Item Serial_No Grade Size Location Date 
CQ35 A243911  4 36 C   20110330 
CQ35 A244567  3 38 D   20110130 
CQ40 A244568  3 41 B   20110129 
CQ36 A244570   2 37 A   20110125 

J'essaie d'extraire la dernière ligne de chaque n ° de série

Merci

Répondre

2

MISE à jOUR: avec la date

select * 
from table as outertable 
where date = (select max(date) from table where Serial_No = outertable.Serial_No) 

L'astuce est ici pour faire la comparaison dans la gamme de Serial_No seulement, et la façon d'y parvenir est avec un Correlated Subquery comme indiqué ici.

+0

J'imagine que c'est la date plutôt que la taille qui détermine la « dernière ligne » ... – jswolf19

+0

ok dernière est maintenant ce jour, la question a mal interprété – Peter

+0

d'erreur. Le message est: -Error: SQL5001 - Qualificateur de colonne ou table OUTER indéfini. – Bob

-1

Quelque chose comme ceci:

SELECT * 
FROM table 
WHERE Date 
IN (
SELECT MAX(Date) 
FROM table 
GROUP BY Serial_No 
) 
+0

c'est faux J'ai peur – Peter

+0

Et pourquoi est-ce? – CookieMonster

+0

il sélectionne toutes les lignes avec des dates qui sont un maxdate quelque part, completeley indépendant de serialnr – Peter

0

Cela suppose qu'il n'y a qu'une seule entrée pour chaque date et le numéro de série.

SELECT MyTable.* 
FROM MyTable 
INNER JOIN (SELECT SerialNo, MAX(Date) 
    FROM MyTable 
    GROUP BY SerialNo) AS MyTableLatest ON MyTable.SerialNo = MyTableLatest.SerialNo 
     AND MyTable.Date = MyTableLatest.Date 
+0

semble trop compliqué pour juste une partie de la solution. – Peter

Questions connexes