Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [spero non sia OT] query ...strana ..

    Ciao a tutti,
    sto' diventando matto non riesco a trovare il capo della matassa
    Il mio problema consiste nel fatto che devo effettuare una statistica da un
    database che è cosi' composto (elenco tabelle essenziali)

    Tb_Principale
    Tb_Device
    Tb_Danni

    La tb_Principale contiene tutti i record principali
    La tb_Device contiene un ID_device ed una descrizione_Device (USB,
    RS232, SCSI .. etc)
    La tb_Danni contiene un ID_danno, ed una descrizione_Danno (Rottura
    vite, Rottura CIS etc...)

    La tabella principale tra i vari Field , contiene gli ID di Device e Danni,
    in modo che vi sia una referenza con le tabelle delle descrizioni.

    Quelle che io dovrei estrarre e' un estratto dei Danni riferito ai Device.
    Il mio problema e' che non riesco a mettere in colonna tutti i danni ed in
    riga tutti i device (a prescindere da quanti essi siano)
    Per farvi capire megli il mio "contorto ragionamento" faccio un esempio di
    quello che dovrei ottenere ..

    Descrizione Danno | USB | SCSI | RS232 | etc..
    Rottura Vite | 2 | 0 | 0 |
    Rottura CIS | 0 | 3 | 0 |
    Resistor rotto | 0 | 0 | 15 |

    (Mi scuso se non sono incolonnate correttamente .. spero di aver reso l'idea, ogni numero ha la sua colonna)

    Logicamente i numeri sono ottenuti con la funzione SUM o altra funzine di
    aggregazione ed i dati sono estratti dalla tabella principale
    Nelle mie prove ho usato la clausola GROUP BY .. ma il mio problema è che
    non riesco a mettere in RIGA tutti i device contenuti nella tabella omonima.

    Spero di essere stato chiaro nell'esporre il problema.
    Grazie
    Filippo

  2. #2
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    vediamo se ho capito...

    secondo me una soluzione è la combinazione tra questa query e la elaborazione dei risultati per creare le colonne:

    SELECT Tb_Principale.* , Tb_Device.descrizione_Device , Tb_Danni.descrizione_Danno
    FROM ( Tb_Principale LEFT JOIN Tb_Device ON Tb_Principale.ID_Device= Tb_Device.ID_Device ) LEFT JOIN Tb_Danni ON Tb_Principale.ID_Danni= Tb_Danni.ID_Danni
    GROUP BY Tb_Principale.ID_Danni

    vedere che esce cosi e poi al limite pensare come mettere il SUM

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.