Query complessa con join su più campi

di il
5 risposte

Query complessa con join su più campi

Buonasera a tutti

devo fare una query sulle due tabelle seguenti:

PK_compensiID_dipendenteNomeOreCompensodalal
11Andrea1001.000,00 €01/02/202328/02/2023
22Anna901.100,00 €01/02/202328/02/2023
31Andrea1101.200,00 €01/03/202331/03/2023
42Anna1201.400,00 €01/03/202331/03/2023
Compensi
PK_ripartizioneID_dipendenteRepartoeffortdalal
11Ufficio0,801/02/202328/02/2023
21Produzione0,201/02/202328/02/2023
32Ufficio0,401/02/202328/02/2023
42Produzione0,601/02/202328/02/2023
51Ufficio0,301/03/202331/03/2023
61Produzione0,701/03/202331/03/2023
72Ufficio0,801/03/202331/03/2023
82Produzione0,201/03/202331/03/2023
Ripartizione

Il mio scopo è ottenere il compenso per dipendente per periodo per reparto, ripartito come indicato dal campo effort:

ID_dipendenteNomeRepartoCompensodalAl
1AndreaUfficio1000 * 0,801/02/202328/02/2023
1AndreaProduzione1000*0,201/02/202328/02/2023
2AnnaUfficio1100 * 0,401/02/202328/02/2023
2AnnaProduzione1100 * 0,601/02/202328/02/2023

E via così. E' possibile in SQL? Grazie

5 Risposte

  • Re: Query complessa con join su più campi

    Dai Davide, è facile …

    puoi partire da Dipendenti ordinati per Id o Nome, come credi meglio e ordinati per reparto

    a seguire con Join su compensi e su ripartizioni etc etc …  

    Prova a buttar giù una stringa sql e vediamo dove arrivi.

  • Re: Query complessa con join su più campi

    Sembra funzionare:

    SELECT compensi.ID_dipendente, compensi.nome, compensi.MESE, compensi.compenso * ripartizione.percentuale AS costo_ripartito, ripartizione.reparto
    FROM   compensi INNER JOIN ripartizione 
    ON compensi.ID_dipendente = ripartizione.cod_dipendente AND dbo.compensi.MESE >= dbo.ripartizione.dal AND compensi.MESE <=ripartizione.al

    Possibile?? Grazie

  • Re: Query complessa con join su più campi

    18/10/2023 - DavidE ha scritto:


    Sembra funzionare:

    SELECT compensi.ID_dipendente, compensi.nome, compensi.MESE, compensi.compenso * ripartizione.percentuale AS costo_ripartito, ripartizione.reparto
    FROM   compensi INNER JOIN ripartizione 
    ON compensi.ID_dipendente = ripartizione.cod_dipendente AND dbo.compensi.MESE >= dbo.ripartizione.dal AND compensi.MESE <=ripartizione.al

    Possibile?? Grazie

    e l'ordinamento non lo metti?  un Order By  per esempio ID_Dipendente / Reparto ?  

  • Re: Query complessa con join su più campi

    Si certo: ORDER BY compensi.dal, compensi.nome, reparto;

    l'esito è questo:

    NomeMesecosto_ripartitoReparto
    Andrea01/02/2023200,00 €Produzione
    Andrea01/02/2023800,00 €Ufficio
    Anna01/02/2023660,00 €Produzione
    Anna01/02/2023440,00 €Ufficio
    Andrea01/03/2023840,00 €Produzione
    Andrea01/03/2023360,00 €Ufficio
    Anna01/03/2023280,00 €Produzione
    Anna01/03/20231.120,00 €Ufficio
    RipartizCompensi

    Sono perplesso.. "eppur si muove"

  • Re: Query complessa con join su più campi

    Visto che non era poi così complicato ? 

    Bravo!!!

    Adesso controlla dato per dato, record per record se tutto è corretto e sei a posto.

    ;-)

Devi accedere o registrarti per scrivere nel forum
5 risposte