Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080

    Domanda query con join tra due tabelle

    Ho una tabella dove segno tutte le visite ai clienti e con questa query vedo tutte le date delle visite.

    codice:
    SELECT COUNT(data) as conto, data FROM chiamate GROUP BY data Order by data asc
    Risultato:
    01/02/2015 - 1
    06/07/2016 - 1
    15/03/2017 - 3
    22/03/2017 - 1

    ---

    Però il cliente che è stato visitato l'01/02/2015 è stato visitato anche successivamente. Vorrei quindi una query che se un cliente è stato visitato più volte prenda buona l'ultuma data, come posso fare?
    Grazie
    Sonia

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Non vedo nessun campo cliente nella tua query. Dà solo il numero delle chiamate per una data.
    Comunque : select cliente, max(data) from tabella group by cliente
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Per semplificare ho riassunto un po' troppo e non mi sono spiegata bene :P

    Secondo il tuo suggerimento di un cliente vedo la data dell'ultima visita (che comnque mi serve in un altra scheda), invece mi serve visualizzare le date di tutti gli incontri raggruppate (cosa che ho fatto con la query postata prima), ma se un cliente ha più incontri devo tenere buona l'ultima data.

    E' una query che mi serve per vedere quali sono i clienti che non frequento da più tempo. (I nomi e i dati li visualizzerò poi, per questo motivo visualizzo solo le date).

    Ri-grazie

  4. #4
    non puoi avere un raggruppamento per date (che conta le visite su TUTTI i clienti) e evidenziare la più recente (se più recente della data raggruppata) per un SINGOLO cliente. Inoltre non sarebbe un report leggibile Ma di sicuro non ho capito io: perché non ci aiuti con un esempio di dati in tabella e uno di come vorresti il report?

  5. #5
    altra cosa: con che db lavori? dovresti dirlo secondo il regolamento...

  6. #6
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Lavoro in MySql e sto facendo un progetto in PHP.

    Allora vi faccio un esempio della mia tabella. (Metto il nome del cliente che è più leggibile, di fatto ho un IDcliente)

    Idvisita - Cliente - Motivo - Data
    1 - Pippo - Proposta stampante - 01/01/2016
    2 - Pluto - Proposto pc nuovo - 02/04/2016
    3 - Paperino - Proposto ADSL - 02/04/2016
    4 - Pippo - Proposto sedia - 06/06/2016

    ---
    Come vedete Pluto e Paperino hanno la stessa data, mentre Pippo è stato visitato in due date diverse.
    Il risultato che vorrei ottenere è:

    02/04/2016
    06/06/2016

    In questo modo vedo che i clienti che da più tempo non contatto non li visito dal 02/04/2016 (poi con il mio sw vado a vedere chi sono in un secondo momento).

    Ri-grazie

  7. #7
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Chiarisco che non mi interessa avere solo la data più vecchia (Anche se è quella che utilizzerò di più).

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Quote Originariamente inviata da Sonikag Visualizza il messaggio
    E' una query che mi serve per vedere quali sono i clienti che non frequento da più tempo.

    Ri-grazie
    Ed è proprio quello che fa la query che ho postato. Non puoi sapere quale sia l'ultima data per un cliente se non sai di quale cliente parli. Ed è proprio la query che hai postato.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Comunque. Prova questo.

    select mdata from (select cliente, max(data) as mdata from tabella group by cliente) order by mdata.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  10. #10
    Quote Originariamente inviata da Sonikag Visualizza il messaggio
    In questo modo vedo che i clienti che da più tempo non contatto non li visito dal 02/04/2016 (poi con il mio sw vado a vedere chi sono in un secondo momento).
    perché fare due passaggi? con la query di badaze hai

    01/01/17 rossi
    02/01/17 verdi
    03/02/17 bruni

    in questo modo hai le ultime date di visita per ogni cliente

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.