Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205

    [SQL]query contare numero giocatori

    Salve avrei un problema con questo esercizio:
    CIRCOLO(Nome, Indirizzo, Città)
    SQUADRA(NomeSquadra , Circolo)
    GIOCATORE(TesseraGiocatore , Squadra))
    PARTITA(NumeroPartita , Giocatore1, Giocatore2, Sede, Vincitore)
    Gli attributi sottolineati sono le chiavi primarie delle relazioni.
    Vincoli di integrità referenziali: “Squadra” referenzia SQUADRA, “Giocatore1”, “Giocatore2” e
    “Vincitore” referenziano GIOCATORE, “Sede” e “Circolo” referenziano CIRCOLO,
    Domanda 2.
    Con riferimento alla base dati "Torneo” produrre un’espressione in SQL che esprima la domanda:
    “Per ogni circolo (di cui si vuole il nome) contare il numero di giocatori di quel circolo che ha
    vinto almeno due partite”

    io l'ho svolto così:
    codice:
    SELECT circolo.[nome]
    FROM circolo
    WHERE nome=(SELECT squadra.[circolo] 
    FROM squadra 
    WHERE nomesquadra=(SELECT giocatore.[squadra] 
    FROM giocatore 
    WHERE tesseragiocatore =(SELECT partita.[vincitore] 
    FROM partita 
    GROUP BY vincitore 
    HAVING count(partita.[vincitore]) >=2)));
    cosa mi dite?

  2. #2
    Così a occhio mi sembra giusta concettualmente, ma dovresti usare le parole chiave JOIN e ON. Poi installati MySQL o quello che preferisci, e provala
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Originariamente inviato da in the web
    Così a occhio mi sembra giusta concettualmente, ma dovresti usare le parole chiave JOIN e ON. Poi installati MySQL o quello che preferisci, e provala
    l'ho inserita come query in access mi funziona se ho solo un giocatore che ha vinto più di due partite, se ho più di due giocatori mi dice:"la sottoquery puo' restituire al max un record" ho provato ad inserirla in phpmyadmin ma non la riconosce

  4. #4
    Access ha dei limiti un po' assurdi. Fai la modifica che ti ho suggerito io per eseguirla su MySQL
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    Originariamente inviato da in the web
    Così a occhio mi sembra giusta concettualmente, ma dovresti usare le parole chiave JOIN e ON. Poi installati MySQL o quello che preferisci, e provala
    non riesco a capire nel mio caso l'utilizzo che mi è stato consigliato di JOIN e ON

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205

    [RISOLTO]

    codice:
    SELECT nome
    FROM circolo
    INNER JOIN squadra ON nome = circolo
    INNER JOIN giocatore ON nomesquadra = squadra
    INNER JOIN partita ON tesseragiocatore = vincitore
    GROUP BY vincitore
    HAVING COUNT( vincitore ) >=2;

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    205
    ulteriore variante:
    codice:
    SELECT nome
    FROM circolo
    WHERE nome
    IN (
    
    SELECT circolo
    FROM squadra
    WHERE nomesquadra
    IN (
    
    SELECT squadra
    FROM giocatore
    WHERE tesseragiocatore
    IN (
    
    SELECT vincitore
    FROM partita
    GROUP BY vincitore
    HAVING COUNT( vincitore ) >=2
    )
    )
    )

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.