begin process at 2010 02 09 23:30:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive SQL

 > 

Archives

 > 

Problème avec une requête

 > 

Relevez le défi - SQL pour loterie


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Relevez le défi - SQL pour loterie

vendredi 16 septembre 2005 à 17:42:43 | Relevez le défi - SQL pour loterie

bergueira

Bonjour.

J' ai mis en sujet 'Relevez le défi car je crois que c' est vraiment un défi ce que je vaux ! ;) ).

J' ai besoin d'un query (en SQL pour la placer dans mon code java qui se connecte à une base de données MySql) qui me permette de selectionner les gagnants des concours.
- Chaque joueur selecctionne 6 numéros (C1, C2, C3, C4, C5, C6) par bulettin;
- Le tirage a 6 numéros (N1, N2, N3, N4, N5, N6);
- Il y a les classements suivants:
* Premier prix: les joueurs qui ont les 6 numéros;
* Deuxième prix: les joueurs qui ont 5 numéros;
* Troisième prix: les joueurs qui ont 4 numéros;
* Quatrième prix: les joueurs qui ont 2 numéros;

J' aimerais avoir comme résultats les bulletins avec leur prix correspondant; Atention qu' un seul prix (le plus haut) ne peut-être présenté par bulletin (et non pas, par exemple, un deuxième prix + 3 troisième prix + 12 quatrième prix).

Merci d' avance à tous.

Carlos Bergueira

lundi 26 septembre 2005 à 16:35:40 | Re : Relevez le défi - SQL pour loterie

DuckyLuke

Voilà une solution possible: La première requête crée une table temporaire (écrase la table existante si elle existe déjà) avec le nom du joueur et 6 colonnes. Dans la première colonne, on met 1 si le numéro correspond à un numéro de la table tirage. Sinon, on met 0 On fait parait avec les 5 autres colonnes... Ensuite on lance une requête sur la table temporaire créée pour afficher les joueurs gagnants. (On filtre sur 3 numéros trouvés minimum) -- *****Création de la table d'analyse des tirages***** SELECT nom, (IIF(C1 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) AS EXPR1, (IIF(C2 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) AS EXPR2, (IIF(C3 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) AS EXPR3, (IIF(C4 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) AS EXPR4, (IIF(C5 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) AS EXPR5, (IIF(C6 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) AS EXPR6 INTO TEMP_TABLE FROM joueur, tirage ; -- *****Affichage des résultats par joueurs gagnants (par nombres de numéros trouvés)***** SELECT nom, SUM(EXPR1 + EXPR2 + EXPR3 + EXPR4 + EXPR5 + EXPR6) As NB_NUM FROM TEMP_TABLE GROUP BY nom HAVING Sum(EXPR1+EXPR2+EXPR3+EXPR4+EXPR5+EXPR6) > 2 ORDER BY Sum(EXPR1+EXPR2+EXPR3+EXPR4+EXPR5+EXPR6) DESC ; Voilà voilà... pas très compliqué... :P
lundi 26 septembre 2005 à 18:46:40 | Re : Relevez le défi - SQL pour loterie

bergueira

Je te remercie pour ton aide, mais ce que je veux est un peu plus 'complexe'.
Je veux un query optimizé. Trés très rapide !
En créant une table je perds bcp de temps; c' est une des possibilitées mais ce n' est pas la plus rapide.

Je te remercie quand même pour ton aide !

Si qq a une autre idée... je suis prennant ! ;)

Merci.

Carlos Bergueira

mardi 27 septembre 2005 à 09:49:19 | Re : Relevez le défi - SQL pour loterie

DuckyLuke

Si tu ne donnes pas toutes les infos tu peux pas t'attendre à avoir la bonne réponse du premier coup... Si tu creuses un peu la requête ci-dessus, tu arriveras vite au résultat suivant: SELECT nom, SUM( (IIF(C1 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) + (IIF(C2 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) + (IIF(C3 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) + (IIF(C4 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) + (IIF(C5 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) + (IIF(C6 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) ) AS NB_NUM FROM joueur, tirage GROUP BY nom ORDER BY SUM( (IIF(C1 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) + (IIF(C2 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) + (IIF(C3 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) + (IIF(C4 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) + (IIF(C5 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) + (IIF(C6 In ([N1],[N2],[N3],[N4],[N5],[N6]), 1, 0)) ) DESC ; Facile... :P


Cette discussion est classée dans : sql, prix, joueurs, défi, numéros


Répondre à ce message

Sujets en rapport avec ce message

Date dans sql server 2000 [ par Boudchiche ] Salut Avant je vous juste vous dire que j'ai chercher pendant 2 jours soit par google et dans le forum mais je n'ai rien trouvece que s'est que lorsqu requête sql (update avec deux bases) [ par jee0404 ] Bonjour,            Je veux pouvoir updater le prix de mes enregistrements de la base de donnée 1 avec les prix de la base de donné 2 , si le champ it authentification SQL server [ par 1zigoto ] Bonjour à tous, Dans Enterprise Manager j'ai besoin d'enregistrer mon serveur local dans un groupe et de m' requete SQL [ par djodjo07 ] Je cherche une requete SQL pour trier mes ID.. en fait j'aimerais par exemple récupérer des données a partir de l'ID 40 ! Je débute ! Merci Programme SQL [ par lapucedu88 ] Bonjour, je suis en deuxiém année de BTS informatique de gestion et je dois réaliser un petit programme SQL.Je sais créer des procédures et des foncti Erreur de test...SQL Server [ par cid019 ] voila l'erreur que j'ai lorsque j'essai d'executer la requete suivante:iif(param = val, val1, sum(val2))[BC30201] Expression expected est l'erreurJe n SQL : probleme de not in [ par bliss_00 ] Bonjour à tous,je voudrais éxécuter une requête SQL sur une BdD mysql mais apparemment il y aurait une erreur de syntaxe. Je ne suis pas sûr de la syn Déplacement des bases master, msdb, model, tempdb avec SQL SERVER 7 [ par RXG ] Bonjour,Je dois réinstaller un serveur de données SQL SERVER 7 mais l'architecture physique entre l'ancien serveur et le nouveau est différente. Il fa procedure pour travailler sur les DATES [ par Bowen123 ] Bonjour,Sous SQL SERVER,J'ai une table comprenant une Ligne par demi journée (tbl_CALENDRIER) défini par une date et un indice de demijournée (0 ou 1) script asp pour rafraichir sql serveur [ par gregorstevens69 ] Bonjour,quelqu'un connait il un script ASP(si possible) pour rafraichir une bd sql serveur.J'ai un script qui créé des tables mais lorsqu'un utilisate


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales