|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5749
|
[SQL] Gestione classifica
Ho questo schema in cui ho indicato con PK le chiavi primarie e con FK quelle esterne. Si riferisce ad un campionato di basket dove non esistono pareggi.
PARTITA(giornata PK, casa PK FK, ospiti, punti casa, punti ospite) CLASSIFICA(giornata PK FK, squadra PK FK, punti, posizione) SQUADRA (nome PK, città, stadio) Devo scrivere un comando di aggiornamento dell'attributo posizione presupponendo che l'attributo punti rappresenti i punti ottenuti sino a quella giornata. L'idea che ho elaborato parte dal presupposto che in ogni giornata tutte le partite siano state giocate (niente rinvii, sospensioni...). Ottengo dalla mia query la classifica così composta. giocate - squadra - punti Codice:
select count(*) as giocate, squadra, sum(totpunti) as punti from classifica group by squadra order by punti desc Grazie.
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
A seconda del motore SQL che stai usando puoi trovare risposte migliori, anche se non SQL92 standard.
Sfortunatamente le funzioni analitiche non sono ancora state standardizzate, anche se sono in giro sui motori DB piu' diffusi da parecchi anni. Una risposta in SQL92 standard, anche se non e' efficiente, potrebbe essere: Costruisco una Vista come da SELECT da te proposta Codice:
CREATE VIEW vs_punti AS SELECT COUNT(*) AS giocate, squadra, SUM(totpunti) AS punti FROM classifica GROUP BY squadra Codice:
SELECT giocate, squadra, punti, (SELECT COUNT(*) FROM vs_punti int WHERE int.punti<=ext.punti) AS classifica FROM vs_punti ext Che forse e' anche corretto dal punto di vista logico.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:21.



















