Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    43

    dubbio raggruppamento in un database

    Salve ragazzi io ho una tabella con i seguenti campi nel db:

    anno, universita_id, utenteuniversita_id, qualifica_id, utentedipartimento_id, ris_richiestaarticoli

    adesso come posso fare a sapere:

    - numero degli articoli richiesti per ogni dipartimento??
    - numero di utenti suddiviso per ogni dipartimento??

    Grazie in anticipo!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107

    Re: dubbio raggruppamento in un database

    Originariamente inviato da nic0tin4
    Salve ragazzi io ho una tabella con i seguenti campi nel db:

    anno, universita_id, utenteuniversita_id, qualifica_id, utentedipartimento_id, ris_richiestaarticoli

    adesso come posso fare a sapere:

    - numero degli articoli richiesti per ogni dipartimento??
    - numero di utenti suddiviso per ogni dipartimento??

    Grazie in anticipo!!!
    Ciao!
    a parte che non si capisce molto cosa vuoi ricercare dal nome che hai dato alle colonne..forse dovresti dare dei nomi diversi o spiegarti meglio.
    Ad esempio, nella seconda richiesta a quali utenti ti riferisci?? utenteuniversita_id o utentedipartimento_id?
    E ris_richiestaarticoli che tipo di colonna è? numerica?
    Ti consiglio di riverti la tabella e di ripassare le funzione di SQL..

    Ti servirà usare COUNT e GROUP BY...

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    43
    ciao la colonna ris_richiestaarticoli è numerica e contiene il numero delle richieste fatte; per gli utenti mi riferisco a quelli del dipartimento.

    Posso fare una cosa del genere per la prima query??

    SELECT COUNT(ris_richiestaarticoli)
    FROM nome_tabella
    WHERE università_id=1 (ad esempio)
    GROUP BY utentedipartimento_id

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107
    Sì, dovrebbe andare...se aggiungi questo, però, ottieni una tabella con due colonne, la prima con il numero di articoli richiesti e l'altra con il relativo dipartimento:

    SELECT COUNT(ris_richiestaarticoli), utentedipartimento_id
    FROM nome_tabella
    WHERE università_id=1
    GROUP BY utentedipartimento_id

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    43
    GRazieeeee, adesso ho un'altro problema:

    devo prendere l'anagrafica(si intende nome cognome, indirizzo) del numero di utenti suddivisa per ogni dipartimento.

    Ho la tabella risultati_utente fatta cosi:

    ris_anno(chiave primaria), id_biblioteca(tipo numerico, chiave primaria), utente_id(tipo numerico, chiave primaria), dipartimento_id(tipo numerico), ris_richieste, ris_evasi, ris_inevasi
    Dove utente_id non è unico perchè possono esserci più utenti associati a più di una biblioteca e un dipartmento può essere associato a più di un utente.

    Ho la tabella utente fatta così:

    utente_id(tipo numerico, chiave primaria), utente_nome, utente_cognome, utente_indirizzo.

    Io ho pensato di fare così:
    SELECT u.utente_nome, u.utente_cognome, ru.dipartimento_id
    FROM report_utente AS ru, utente AS u
    WHERE u.utente_id = ru.utente_id AND ru.bi_id=1
    GROUP BY ru.dipartimento_id

    Secondo voi può andare??? Mi date una mano???

    Grazieeeeee

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    43
    Non c'è nessuno che sappia aiutarmi????

    Grazieeeee

  7. #7
    Originariamente inviato da nic0tin4
    Non c'è nessuno che sappia aiutarmi????

    Grazieeeee
    Non credo sia possibile avere piu' chiavi primarie nella stessa tabella. E sopratutto la chiave primaria non deve avere duplicati. Quindi inpossibile darti una risposta in presenza di una struttura come descritta per la tabella risultati_utente che poi, tra l'altro, non compare per nulla nella query.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    43
    si infatti hai ragione scusate, ho fatto confusione riscrivo la struttura:

    Tabella report_utente
    ris_anno(chiave primaria), id_biblioteca(tipo numerico, chiave primaria), utente_id(tipo numerico, chiave primaria), dipartimento_utente_id(tipo numerico, chiave esterna), ris_richieste, ris_evasi, ris_inevasi

    Dove utente_id è univoco.

    Tabella utente
    utente_id(tipo numerico, chiave primaria), utente_nome, utente_cognome, utente_indirizzo. dipartimento_utente(tipo varchar, chiave esterna che punta all'id della tabella disciplina).

    e questa è la query che ho provato a fare io:
    SELECT u.ut_nome, u.ut_cognome, ru.qu_id
    FROM utente AS u, report_utente AS ru
    WHERE u.ut_id=ru.ut_id AND ru.bi_id=1 AND ru.re_anno=2001

    secondo voi puo andare?

  9. #9
    Allora... non puo' andare la struttura che hai impostato

    ripeto: La chiave primaria puo' essere una soltanto per ogni tabella. Forse usi il termine chiave primaria in modo scorretto.

    se fai un riferimento con una chiave esterna questa deve essere dello stesso tipo: se numerica da un lato lo deve essere pure dall'altro.

    Non e' tanto una questione di query ma piuttosto di impostazione della struttura del database.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    43
    Allora io ho la struttura degli indici della tabella report_utente cosi in phpmyadmin:

    Nome chiave Tipo Campo
    PRIMARY PRIMARY bi_id
    ris_anno
    ut_id

    ris_richieste INDEX ris_richieste
    ut_dip INDEX ut_dip
    qu_id INDEX qu_id

    Quindi ho solo una chiave primaria che è bi_id.

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.