Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    5

    [MySQL] Estrapolare dati da due tabelle uguali

    Ciao.
    Ho due tabelle relative a chiamate che contengono gli stessi campi: Durata, Costo, Tipo, Reparto.

    Riporto un esempio:

    codice:
    tab1
    --------------------------------------------------------------------------
          Durata      |      Costo      |      Tipo      |      Reparto      |
    --------------------------------------------------------------------------
         00:01:00     |        10       |    Nazionali   |   Contabilità     |
         00:02:00     |        20       |    Cellulari   |   Amministrazione |
         00:03:00     |        30       |    Nazionali   |   Amministrazione |
         00:01:00     |        10       |    Nazionali   |   Amministrazione |
         00:02:00     |        20       |    Cellulari   |   Magazzino       |
    --------------------------------------------------------------------------
    
    tab2
    --------------------------------------------------------------------------
          Durata      |      Costo      |      Tipo      |      Reparto      |
    --------------------------------------------------------------------------
         00:05:00     |        50       |    Cellulari   |   Magazzino       |
         00:10:00     |       100       |    Nazionali   |   Contabilità     |
         00:04:00     |        40       |    Urbane      |   Magazzino       |
    --------------------------------------------------------------------------
    Vorrei estrarre tutti i dati, sommando quelli relativi a Durata,Costo e numero raggruppandoli per Tipo, ottenendo un ResultSet come il seguente:
    codice:
    ResultSet
    
    00:01:00    20    1    Amministrazione    Cellulari
    00:07:00    70    2    Magazzino          Cellulari
    00:04:00    40    2    Amministrazione    Nazionali
    00:11:00   110    2    Contabilita        Nazionali
    00:04:00    40    1    Magazzino          Urbane

    Per estrarre i dati da una sola tabella utilizzo questa query:
    codice:
    SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(DATE_FORMAT(Durata,'%H:%i:%s')))),SUM(Costo),COUNT(Tipo),Tipo,Reparto FROM db.tab1 GROUP by Tipo,Reparto ORDER BY Tipo;
    Non so come fare per estrarre i dati da entrambe le tabelle; per eseguire le somme ho pensato ad una cosa del genere:

    codice:
    SELECT (SUM(TIME_TO_SEC(DATE_FORMAT(c.Durata,'%H:%i:%s'))))+(SUM(TIME_TO_SEC(DATE_FORMAT(s.Durata,'%H:%i:%s')))),(SUM(c.Costo))+(SUM(s.Costo)),(COUNT(c.Tipo))+(COUNT(s.Tipo)) FROM db.tab1 c,db.tab2 s;
    Ma così mi somma tutto; non riesco ad andare oltre e ci sto diventando matto.
    Qualcuno sa aiutarmi?
    Grazie in anticipo.

  2. #2
    ciao fm05

    prova con una tab temporanea
    crea una terza tabella uguale alle precedenti
    chiamiamola tab3

    poi esegui questa query di inserimento

    INSERT INTO tab3 (SELECT * FROM tab1) UNION (SELECT * FROM tab2);

    a questo punto la tab3 dovrebbe contenere tutti i dati della tab1 + i dati della tab2
    ora esegui la tua query su tab3

    SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(DATE_FORMAT(Durata,'%H :%i:%s')))),SUM(Costo),COUNT(Tipo),Tipo,Reparto FROM db.tab3 GROUP by Tipo,Reparto ORDER BY Tipo;

    spero ti funzioni

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    5
    Funziona!
    Non avevo pensato a creare una tabella "di appoggio" e mi ero intestardito a fare tutto con una sola query.

    Grazie mille.

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