Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    la COUNT() non va da sola nella SELECT *, la devi mettere esplicita. Tra l'altro non vedo GROUP BY, quindi non capisco come fai a contare

  2. #12
    Hai ragione, infatti l' ultimo tentativo ha questo aspetto:

    codice:
    SELECT *
            FROM allievo AL
            INNER JOIN(
            SELECT 
                    IND.id_sedeClienteNeca,
                    SOC.ragioneSociale,
                    IND.toponimo,
                    IND.indirizzo,
                    IND.civico,
                    IND.cap,
                    IND.comune,
                    IND.provincia,
                    SER.servizioAllievo,
                    SER.permessi,
                    SER.abilitato
                    FROM societaclienteneca SOC
                    INNER JOIN sedeclienteneca SEDE ON SEDE.id_societaClienteNeca= SOC.id_societaClienteNeca
                    INNER JOIN indirizzosedeclienteneca IND ON IND.id_sedeClienteNeca=SEDE.id_sedeClienteNeca  
                    INNER JOIN servizi SER ON SER.id_sedeClienteNeca= SEDE.id_sedeClienteNeca
                    WHERE SOC._Stato!= 'D'
            ) AS SCUOLE
            ON AL.id_sedeClienteNeca = SCUOLE.id_sedeClienteNeca
            GROUP BY SCUOLE.id_sedeClienteNeca
            HAVING COUNT(AL.id_allievo) > 5

  3. #13

  4. #14
    poi, per essere più veloce, è la query scuole/allievi che deve essere interna, così scremi quelle con più di 5 allievi. quella esterna poi "decora" le scuole con altre info

  5. #15
    prepara una query con sole due tabelle (alunni e quella delle scuole a cui fa riferimento alunni), mettici GROUP BY, COUNT e HAVING. Inizia da quel nucleo

  6. #16
    Buongiorno,
    intanto grazie,
    la prima query seguendo i tuoi consigli sembra funzionare

    codice:
    SELECT SEDE.id_sedeCliente,COUNT(AL.id_allievo)
                    FROM allievo AL
                    INNER JOIN sedecliente SEDE ON SEDE.id_sedeCliente =AL.id_sedeCliente             
                    GROUP BY SEDE.id_sedeCliente
                HAVING COUNT(AL.id_allievo) > 5
    Adesso basta fare una select esterna con tutti i campi che mi servono che fa Join con questa giusto?

    Quindi credo sia una cosa del genere:

    codice:
    SELECT
                    SOC.ragioneSociale,
                    IND.id_sedeClienteNeca,                
                    IND.toponimo,
                    IND.indirizzo,
                    IND.civico,
                    IND.cap,
                    IND.comune,
                    IND.provincia,
                    SER.servizioAllievo,
                    SER.permessi,
                    SER.abilitato,
                    FROM societaclienteneca SOC
                    INNER JOIN sedeclienteneca SEDE ON SEDE.id_societaClienteNeca= SOC.id_societaClienteNeca
                    INNER JOIN indirizzosedeclienteneca IND ON IND.id_sedeClienteNeca=SEDE.id_sedeClienteNeca  
                    INNER JOIN servizi SER ON SER.id_sedeClienteNeca= SEDE.id_sedeClienteNeca
                    INNER JOIN
                    (
                        SELECT SEDE.id_sedeClienteNeca,COUNT(AL.id_allievo)
                        FROM allievo AL
                        INNER JOIN sedeclienteneca SEDE ON SEDE.id_sedeClienteNeca =AL.id_sedeClienteNeca                
                        GROUP BY SEDE.id_sedeClienteNeca
                        HAVING COUNT(AL.id_allievo) > 5
                    ) AS SCUOLE ON  IND.id_sedeClienteNeca= SCUOLE.id_sedeClienteNeca
                    WHERE SOC._Stato!= 'D'
    Ultima modifica di Maxilboss93; 10-02-2022 a 10:21

  7. #17
    questa seconda funziona?

  8. #18
    Sembra di sì ma per essere sicuro ho spezzato il problema, prima estraggo gli id_scuole con >5 allievi e li metto in un array, poi ciclo sull' array per la seconda query così sono sicuro che funzioni.
    Grazie mille

Tag per questa discussione

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