Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    77

    problema query 1 tabella access sql

    Ciao! Ho un problema con una query sql su access. Ho una tabella formata da Clienti, attività, data, formazione, contatti, avanzamento, note. La colonna Clienti ha alcuni dati uguali a cui corrispondono attività data ecc... diversi. Io vorrei fare una query che visualizza Clienti attività data formazione e contatti. La parte difficile consiste nel fatto che vorrei avere solo il cliente a cui corrisponde la data più recente, questo per ogni cliente.

    Esempio
    Clienti data formazione
    a 13/02/2010 1
    a 20/05/2011 2
    b 15/04/2011 3
    c 13/02/2010 4
    d 28/01/2010 5
    d 03/11/2011 6


    Risulato sperato
    Clienti data formazione
    a 20/05/2011 2
    b 15/04/2011 3
    c 13/02/2010 4
    d 03/11/2011 6

    Ho utilizzato questi comandi ma ottengo un risultato sbagliato:
    SELECT Tabella1.Cliente, Tabella1.Attività di formazione, Tabella1.Data, Tabella1.Ora, Tabella1.Contatto
    FROM Tabella1
    WHERE Tabella1.Data IN (SELECT MAX(Tabella1.Data)
    FROM Tabella1
    GROUP BY Tabella1.Cliente);

    Potete aiutarmi? Grazie mille davvero

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Non funziona perche tu selezioni per ogni cliente la
    massima data e la metti fra i criteri .

    Succede che il 13/02/2010 è la massima per il cliente "c"
    ma è anche una " data qualunque " per il cliente "a"



    Quindi del cliente "a" oltre alla sua massima data
    ti prende anche il 13/02/2010


    __________________________________________________ ____

    Se i tuoi campi sono:
    ___Clienti
    ___attività
    ___data
    ___ora
    ___formazione
    ___contatti
    ___avanzamento
    ___note


    La tua query sarà
    codice:
    SELECT 
    
    Tabella1.Clienti, 
    Tabella1.attività, 
    Tabella1.data, 
    Tabella1.ora, 
    Tabella1.formazione, 
    Tabella1.contatti, 
    Tabella1.avanzamento, 
    Tabella1.note
    
    FROM 
    
    Tabella1 
    
    INNER JOIN 
    
    (
    SELECT 
    Tabella1.Clienti, 
    Max(Tabella1.data) AS MData
    FROM Tabella1
    GROUP BY Tabella1.Clienti
    ) AS Q1
    
    ON 
    
    (Tabella1.Clienti = Q1.Clienti) AND (Tabella1.data = Q1.MData)
    
    ;

    __________________________________________________ ________


    Se mi permetti una osservazione di carattere generale,
    noto che hai un campo che si chiama "attività"

    E sconsigliabile nei nomi dei campi ( e tabelle )
    mettere caratteri accentati, spazi, ecc

    __Solo lettere dalla A alla Z e numeri NULL'ALTRO ___






  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    77
    Grazie mille!! funziona perfettamente!!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.