Newsgroup: it.comp.lang.visual-basic
Titolo: query strana

salve a tutti:
allora il mio problema è questo
ho un database con 3 campi
campo 1 = N° pettorale
campo 2 = N° categoria
campo 3 = N° totale punti
il tutto viene scritto per 3 volte
visto che i piloti fanno 3 giri
quando un pilota si ritira, viene scritto 1 o 2 volte
io dovrei cercare di fare in modo che quando i piloti di quella
categoria anno finito la gara , con un msgbox mi dica che
la categoria ............. ha finito la gara.
il fatto è che non riesco a fare questa benedetta query
potreste gentilmente aiutarmi in qualche modo .
grazie


Guarda... la query potresti anche farla... ma la progettazione è PESSIMA!!!
Ti consiglio di rivedere tutta la struttura...
Bye,
-- 
Carmine ( 
pikachu...@gmail.com
 (Togli la scritta NOSPAM) )
Webmaster di The Total Site 4 : 
http://www.thetotalsite.it
My Blog: 
http://blog.thetotalsite.it
MariokartDS Codice Amico: 532639027909 - CarmineC in MarioKartDS
"Un problema non è un problema se può essere risolto" 

 la categoria ............. ha finito la gara.
Devi almeno mettere un campo boolean per i ritirati, altrimenti risultano
sempre in pista e la gara non finisce mai :)
--
Greg

sareste cisě gentili di farmi un piccolo esempio
tanto per capire ve ne sarei molto grato
grazie 

 ha scritto nel messaggio 
news:444ba392$0$18295$4faf...@reader1.news.tin.it...

Dipende dal tipo di informazioni che si vuole segnare.
1)aggiungere:
campo 4= primo giro
campo 5= secondo giro
campo 6=terzo giro
come si inserisce un valore al campo 6, si invia una messaggio.
Oppure un controllo periodico, ogni tot secondi, se il campo ultimo non è 
null, messaggio e aggiornamento di un campo 7 che l'avviso è stato dato.
2)
Se l'informazione deve essere più granulare, forse conviene relazionare la 
tabella concorrenti con tre tabelle, una per ogni giro.
Age
giuseppeD
---
CCR 

il fatto è che ad ogni giro le penalità vengono scritte
perciò ogni pilota di quella categoria vine scritto tante volte
in base ai giri , di medie si fanno 3 giri
perciò il pilota 105 viene scritto 3 volte , e così  anche per gli
altri piloti
il fatto è che se un pilota si ritira viene scritto una o due volte al 
massimo
l'inghippo stà tutto li. 


Forse mi sbaglio, ma io ho sospetto che tu non abbia ancora incominciato.
Ad ogni modo ecco il pezzo di codice:
"select * from tabella where gara = 'motocross' and ritirato = false"
Dividi il numero dei record per tre. Se il risultato č zero la gara č
finita.
Poi immagino che vorrai sapere chi ha vinto, o no?
-- 
Greg

ti ringrazio della dritta, io ci ero quasi arrivato
mi mancava solo l'istruzione " and ritirato = false" "
Mi manca sempre que Pelo .....................
per farcela.
sono due settimane che ci lavoro
charamente a tempo perso
e comuncue grazie 


Ma perchè devi incasinare tutto così ?!?!



in che senso 

 in che senso
Credo che ci sia un problema di mancanza di contesto.
Cosa stai cercando di realizzare?
Cioe'...se i dati inseriti sono inseriti come dici tu, ovviamente non c'e' 
un modo sicuro per dire che la gara e' conclusa. Perche' niente vieta che un 
pilota inserito solo due volte in realta' stia facendo altro ed arrivi fra 
mezz'ora. E quindi non si puo' affermare niente.
Quindi...hai bisogno di un contesto. E' una competizione? Ha delle regole.
Poi...stai realizzando un sistema informatico per delle competizioni oppure 
stai rielaborando dei dati che ti arrivano da un'altra fonte? Perche' nel 
primo caso, la cosa piu' ovvia e' fare in modo che quando un giudice 
registra come ritirato qualcuno il fatto venga segnato da qualche parte.
Poi...che te ne frega di DB e query?
E' una gara? E allora lavora in memoria e scrivi un'algoritmo da eseguire 
via codice. Cos'e' questa moda di voler risolvere tutto con le query?
Insomma, se parti dal concetto di "ho una serie di record inseriti senza una 
logica, alcuni inseriti due volte, altri tre", non ne vieni fuori. Se invece 
ti dai un contesto magari ne vieni fuori.
(ad esempio, da che mondo e' mondo le gare finiscono quando il primo passa 
il traguardo. Quindi il primo che arriva a tre giri ti deve far scattare la 
"fine gara". Pero' questo non evita di avere dati mancanti..)

 in che senso
Tutta la struttura del db IMHO è progettata male!


Tutto quello che dici in realtà sarebbe vero se non conosci
tutto il resto.
comunque stò facendo un programma gratis cioe libero
per il mio moto club .
Il programma mi gestisce tutte le iscrizioni dei piloti del triveneto
iscritti all  F.M.I. e quando c'è la gara io col mio programma inserisco
i sudetti iscritti alla gara e ne gestisco tutte le penalità
in ogni zona non stop, e alla fine faccio la classifica
a il programma gestisce solo gare di trial
il casino che ho fatto e chiedo scusa agli amici del NG
era solo che non riesco a verificare quando una categoria ha terminato
la gara, tanto per accelerare i tempi per stampare le classifiche
comuncue grazie per l'interessamento
ciao 

 ha scritto nel messaggio 
news:444e0331$0$29724$4faf...@reader2.news.tin.it...

Ok, perfetto, per cui avevo intuito perfettamente il problema.
Ci sono dei regolamenti che dicono quando una gara e' finita, e a volte la 
via piu' breve per risolvere un problema col PC e' uguale a quella usata da 
un'essere umano.
1) Va segnato ogni ritiro.
2) Va deciso a quanti giri X finisce la gara
3) Quando tutti i piloti che non si sono ritirati hanno il numero di giri X, 
la gara e' finita.
Semplice semplice, banale banale.
E siccome non avrai mai piu' di 50 iscritti, puoi anche farti una group by 
sul pettorale dei piloti non ritirati e con un ciclo verificare se ce ne 
sono ancora a <X giri. Quando non ce ne sono piu', e' finita la gara. 
Colleghi il tutto ad un timer che parte ogni 5 secondi, e ci sei.