Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313

    [sql] query semplice errata

    ciao raga,
    ho una query sql che mi dovrebbe fare la media dei salari dei dipendendi:

    SELECT AVG(salariOra)
    FROM Dipendenti
    Where NoDipendente <> "1"
    --> questo é perché il capo non deve figuare nella media... e lui ha il codice 1.

    il problema é che ci sono due dipendenti che hanno la stessa identica paga e quindi mi sballa la media -->

    al posto di (somma salari) / (numero dipendenti)
    mi fa (somma salari) / (numero dipendenti - 1) che sarebbe quello doppio....

    come metto a posto?
    alcool: la causa e la soluzione di tutti i problemi

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    queste query dovrebbero essere identiche:

    codice:
    SELECT AVG(salariOra) FROM Dipendenti
    Where NoDipendente <> "1"
    codice:
    SELECT SUM(salariOra) / COUNT(salariOra) FROM Dipendenti
    Where NoDipendente <> "1"


    think simple think ringo

  3. #3
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    grazie... ho sistemato... non so perché non andava.. strano!
    cmq ho un altro quesito che mi sta facendo diventare matto:

    ho la tabella Impiegati e la tabella Assenze.

    Assenze é strutturata come segue:
    NoAssenza, NoImpiegato, CodiceAssenza, DurataAssenza.
    Mentre Impiegati é:
    NoImpiegato, NomeImpiegato... ecc ecc.

    voglio fare in modo che la query mi stampi il nome dell'impiegato (e la somma delle assenze che ha fatto (DurataAssenza)

    io faccio:

    SELECT Impiegati.NomeImpiegato, Assenze.DurataAssenza
    FROM Impiegati, Assenze
    WHERE Impiegati.NoImpiegato = Assenze.NoImpiegato


    ma cosi ho un risultato tipo:

    marco 4
    giovanni 9
    marco 2


    come faccio a fargli mettere insieme i doppioni sommando i valori nel campo DurataAssenza in modo da avere

    marco 6
    giovanni 9
    alcool: la causa e la soluzione di tutti i problemi

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    prova così:
    codice:
    SELECT impiegati.NomeImpiegato,SUM(assenze.DurataAssenza) FROM assenze
    INNER JOIN impiegati ON impiegati.NoImpiegato = assenze.NoImpiegato
    GROUP BY impiegati.NomeImpiegato


    think simple think ringo

  5. #5
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    sei un grande... funziona!!!
    alcool: la causa e la soluzione di tutti i problemi

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.