2010-01-07 9 views
0

J'essaie d'exécuter une requête avec Access. Chaque client peut avoir plusieurs révisions du même "widget". Tous les clients n'ont pas besoin de la même révision, par ex. - CustomerA a été entré dans la colonne 'ID' comme 10, 13, et 34 - 34 contient les données que je veux voir sans voir les entrées 10 et 13 - chaque 'ID' a la date de saisie et le même 'widget #' - donc 10, 13 et 34 montrent 'Entrée #' 'widget42''rev #' 'customerA''date entré'. De même, 'CustomerC' n'a qu'une entrée. (La première révision est généralement laissée vide, c'est-à-dire que certains ne disent pas Rev. 0, la cellule est simplement vide.) Ainsi, 'customerC' ressemblerait à ceci: 'Entry #' 'widget42''rev # (peut être vide) '' customerC''date 'entré'. Ce que je veux est de voir seulement la dernière révision pour chaque client pour un widget, tous les clients sur une seule page avec leur dernier widget révisé (pas de widgets de répétition par client).Tri d'accès par 'date de révision' de 'widget individuel' par le client

'Entrée #' - '# widget' - 'rev #' - 'client #' - 'date entrée'

'10' ------ 'widget42'-' '-' Brésil '-----' 19/08/1999 '

' 13 '------' widget42 '-' Rev 1 '-' Brésil '-----' 05/08/2001'

'20' ------ 'widget5' - » '-' Irlande '----' 09/12/2001'

'26' - ---- 'widget6' - '' - 'Brésil' ----- '12/01/2001'

'30' ------ 'widget5' - 'Rev 1' - 'Irlande' ---- '10/30/2003'

'33' ------ 'widget42'- '' - 'Irlande' ---- '16/11/2005'

'34' ------ 'widget42' - 'Rev 2' - 'Brésil' ----- '05/14/2006'

'43' ------ 'widget23'-' '-' Pérou '-------' 06/16/2006'

'54' ------ 'widget6' - '' - 'Irlande' ---- '06/17/2006'

CE QUE JE VOUDRAIS VOIR ----------- ----------------- POSSIBLEMENT TRIÉS PAR LE CLIENT ----- APRÈS LE RETOUR DE LA DERNIÈRE RÉVISION NUMÉRO

'Entrée #' - 'widget de #' - 'rev #' - 'client #' - 'date entrée'

'20' ------ 'widget5'- - ' '-' Irlande '----' 09/12/2001'

'26' ------ 'widget6' -' '-' Brésil '-----' 01/12/2001'

'30' ------ 'widget5' - 'Rev 1' - 'Irlande' ---- '30/10/2003'

'33' ------ 'widget42'-' '-' Irlande '----' 11/16/2005'

'34' ------ 'widget42' - 'Rev 2' - 'Brésil' ----- '14/05/2006'

'43' ------ 'widget23' - ' '-' Pérou '-------' 06/16/2006'

'54' ------ 'widget6' -' '-' Irlande '--- -'06/17/2006'

+0

voulez-vous un rapport ou un résultat recordset? –

+0

Je voudrais un rapport. Merci. – Steve

+0

Je ne peux pas pour la vie de moi comprendre quelle est la différence entre vos deux exemples. –

Répondre

0

vous pouvez baser votre rapport sur une requête, dire:

SELECT w.entry, w.widget, w.revx, 
     w.customer, w.date_entered 
FROM 
    (SELECT entry, widget, Nz([rev],"rev0") AS revx, 
      customer, date_entered 
    FROM widgets) w 
INNER JOIN (SELECT customer, widget, Max(Nz(rev,"rev0")) As revx 
      FROM widgets 
      GROUP BY customer, widget) AS a 
ON (w.widget = a.widget) AND (w.customer = a.customer) AND (w.revx=a.revx) 
Questions connexes