× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Autres langages
 Edition de requêtes SQL complexes
Ajouter un message à la discussion
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]
esimo
  Posté le 28/05/2014 @ 18:09 
Aller en bas de la page 
Petit astucien

Bonjour,

Ayant des connaissances très basiques concernant l'édition de requête SQL, et au vu de la complexité de mon projet, je me permet de vous solliciter afin que vous puissiez m'apporter une aide nécessaire à la réussite de mon projet déterminant pour la suite de mes études.

Je vais essayer de vous exposer mon problème le plus clairement possible:

J'ai créer une base de données permettant de classer les différentes équipes, les différents joueurs de NBA ainsi que leurs caractéristiques et leurs performances. J'ai créer 5 tables (EQUIPE, JOUEUR, STAT_EQUIPE, STAT_JOUEUR, MATCHS). Les tables EQUIPE et JOUEUR ne me posent pas de problème étant donné qu'elles n'évoluent peu ou pas du tout. J'ai donc saisie toutes les informations les concernant.

Mon problème est de saisir les différents champs de la table MATCHS par le biais d'un formulaire (équipe1, équipe2, points équipe1, points équipe2, passes décisives équipe1...) mais aussi les différentes performances individuelles pendant la rencontre (joueurX équipe1, ses points, passes... et ce pour tous les joueurs). J'aimerai qu'au fur et à mesures des saisies des rencontres (80 par équipe) les stats s'additionnent respectivement dans les tables STAT_EQUIPE et STAT_JOUEUR en fonction forcément des équipes et des joueurs.

Après de nombreuses recherches je crois qu'avant des créer le formulaire il faut inclure des requêtes SQL dans ma base qui permettraient d'additionner ces différentes saisies de la table MATCH au fur et à mesure, dont le résultat apparaîtrait dans les champs des tables de STAT_... en tenant compte des équipes et des joueurs saisie dans le formulaire.

Et c'est la que je coince.

Je vous remercie par avance de l'intérêt porter à ce problème.

Cordialement.



Modifié par esimo le 28/05/2014 18:11
Publicité
qmike549
 Posté le 28/05/2014 à 18:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

bonjour

Avant tout, il faut bien établir les relations entre les tables

Merci donc de poster l'image de schema relationnel de tes tables

esimo
 Posté le 28/05/2014 à 18:30 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

esimo
 Posté le 28/05/2014 à 19:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour, le schéma relationnel est-il correct?

qmike549
 Posté le 28/05/2014 à 20:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

bonjour

Pourquoi la table MATOS est -elle isolée ?

esimo
 Posté le 28/05/2014 à 20:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je l'ai mise en relation avec les champs match des tables STAT_JOUEUR et STAT_FRANCHISE...

(Sur la 2ème image)



Modifié par esimo le 28/05/2014 20:10
Titus68
 Posté le 28/05/2014 à 20:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Si c'est pour le mondial au Brésil, va falloir se dépêcher !

esimo
 Posté le 28/05/2014 à 21:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Non c'est du basket, j'ai choisi la NBA car ce sport met à disposition beaucoup de statistiques ce qui est intéressant pour mon projet.

Seulement j'ai besoin de vous pour savoir s'il est réalisable et pour m'aider à le construire..

Le langage SQL et une notion que je ne maîtrise pas malheureusement.



Modifié par esimo le 28/05/2014 21:02
Titus68
 Posté le 28/05/2014 à 21:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Rebonjour,

Pour les requêtes normalement elles devraient être à faire dans les formulaires au fur et à mesure, je pense. En fait inutile de faire des requêtes super compliquées, plusieurs requêtes simples pour remplir les tables devraient aller.

Si on veut faire les stats d'un joueurs sur plusieurs matches, il va falloir boucler sur stat_joueur. Je me demande aussi s'il ne faudrait pas mettre dans la clé de stat_joueur l'id du match, idem pour stat_franchis.

Enfin mettre les index sur les clés primaires et les clés étrangères.

Mais bon comme il n'y aura pas des tonnes de données normalement çà ne devrait pas poser de problème.

Publicité
esimo
 Posté le 28/05/2014 à 21:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Rebonjour,

Que veux tu dire par boucler sur STAT_JOUEUR?

Et qu'est ce qu'un index?

Je suis désolé mon niveau est très faible ...

Titus68
 Posté le 28/05/2014 à 21:21 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

On peut imaginer plusieurs stratégies :

- 1 formulaire pour créer/modier/supprimer des franchises (saisies en 1er)

- 1 formulaire pour créer/modifier/supprimer des joueurs (saisis en 2e) avec sur le formulaire une combo des franchises (ou il faudra en choisir une)

- 1 formulaire pour créer/modifier/supprimer les matches (avec choix des franchises puis les franchises choisies piocher les joueurs dans chacune des 2 franchises)

- 1 formulaire pour la saisie des stats d'un match avec 1 tableau par franchise contenant la liste des joueurs et pour chaque joueur des cases de stats à remplir).

Titus68
 Posté le 28/05/2014 à 21:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

En fait tel que je le comprends pour la table stat_joueur, si le joueur A participe à 3 matches, on aurait donc dans stat_joueur 3 lignes (1 par match).

Oui en fait pas besoin de boucler il faudra faire des sommes dans la requête pour avoir par exemple les passes décisives de tous les matches du joueur.

Les index servent à accéler les recherches, c'est un peu comme les pages d'index d'un catalogue, si on cherche par exemple une "passoire" dans un catalogue d'ameublement, il suffit d'aller à la fin du catalogue et voir les n° de pages où l'on trouvera des "passoires". C'est plus rapide que de prendre chaque page une par une du catalogue pour voir si on trouve une "passoire".

En principe si les index sont bien définis le moteur sql les utilisera (de façon transparente et sa convenance) pour recherche les infos.

Bon par contre question pédagogie c'est pas trop mon fort ...

esimo
 Posté le 28/05/2014 à 21:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Oui j'aimerai avoir tous les matchs de chaque joueurs et de chaque équipe et toute les stats, et la somme de tous les matchs.

Ensuite je pourrais construire un document calc avec graphique, pourcentage... lié aux résultats enregistrées dans la base.

En faite l'idéal serait d'avoir un formulaire pour la table MATCHS lié aux tables STATS. Et ça c'est possible sans requêtes SQL ?

Alors je ne vois pas comment faire lors de la création du formulaire..

Si j'ai compris et comment on créé un index ?

Titus68
 Posté le 28/05/2014 à 21:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Oui je suis d'accord pour la table match mais au départ pour définir joueurs et franchises tu ne fais pas de formulaire ? En fait j'ai l'impression de tu veux tout remplir avec un formulaire ?

Si tu pars sur une base de données, non, il faudra faire des requêtes sql.

Pour la création des index normalement il y a des ordres create index (ou peut-être clic droit sur la table et il sera proposé de créer un index) mais çà dépendra sans doute de la base de données choisie (c'est du mysql ?).

Maintenant çà dépend peut-être aussi du langage et de l'outil de développement.



Modifié par Titus68 le 28/05/2014 21:59
esimo
 Posté le 28/05/2014 à 21:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Pardon je n'avais pas vu le premier message.

Est t'il possible de créer un seul formulaire avec deux listes déroulantes pour les deux équipes qui s'affronternt, en fonction du choix, permettre d'afficher automatiquement dans deux tableau (un par équipe) en dessous la liste des joueurs présents dans chaque équipes puis dans le tableau compléter les différentes stats de chaque joueur (pour la table STAT_JOUEUR) et ajouter une ligne total en dessous dont les champs formeront les champs STAT_FRANCHISE ?

Titus68
 Posté le 28/05/2014 à 22:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Oui c'est aussi possible. Le seul problème c'est sans doute de savoir si tu créés aussi les franchises et pour chacune d'elles les joueurs au fur et à mesure dans ce formulaire ou si les franchises et joueurs auront été déjà définis en amont (par exemple grâce à un autre formulaire).

Ben en fait tout est réalisable, après, parfois séparer les étapes c'est plus facile pour la compréhension et la maintenance. C'est à voir.

esimo
 Posté le 28/05/2014 à 22:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Oui j'ai déjà rentré directement dans les tables FRANCHISE et JOUEUR toute les équipes et leurs infos, tout les joueurs et leurs infos. Désolé j'ai oublié de le préciser.

Il ne manque plus que les tables STAT_FRANCHISE et STAT_JOUEUR et MATCHS à compléter en fonction des deux premières. Et j'aimerai le faire dans un seul formulaire..

Si c'est possible pourrais tu m'expliquer comment faire?

Publicité
esimo
 Posté le 28/05/2014 à 22:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

-En faite savoir comment liée un champs du formulaire à deux champs de table différentes.

exemple:

en saisissant le score final du match j'aimerai que ca s'affiche dans la table MATCH champs point_franchise1 et dans la table STAT_FRANCHISE champs point de cette même équipe (et si possible que ca s'additionne automatiquement)

Ce qui me permettra de faire une moyenne de point par match par exemple..

-Et savoir comment faire en sorte dans le formulaire, quand je sélectionne une équipe, que tout les joueurs de cette équipe s'affiche automatiquement.

Titus68
 Posté le 28/05/2014 à 22:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Ben en fait c'est pas aussi simple ...

Je verrais bien une

- SELECT Franchise from franchise pour remplir chaque combo franchise

Une fois la valeur de la combo de franchise 1 choisie faire :

- SELECT joueur, ... from joueur, franchise where joueur.id_franchise = franchise.id_franchise and franchise.franchise = [la valeur choisie dans la combo'

Va chercher les joueurs de la franchise 1, afficher le résultat dans une listbox avec en plus les cases de stats par joueur.

Note : dans la table joueur, franchise est inutile car il y a déjà id_franchise.

Faire la même chose pour la franchise 2

Saisir le nom du match, les points, les stats des joueurs puis en cliquant sur OK :

Insert into matches values(...)

Pour chaque joueur faire :

Insert into stat_joueur values(...)

Pour chacune des franchises (après d'éventuels calculs) faire :

insert into stat_franchis values(...)

Remplacer les (...) par les valeurs données au colonnes de chaque table.

Après çà, çà n'est valable que pour la saisie. Si par exemple tu te trompes, il faudrait pouvoir revenir sur ce formulaire et faire des SELECT pour afficher match et stat-joueur, stat-franchis puis faire la modif. des données par l'utilisateur puis lorsqu'il valide fait non plus des INSERT mais des UPDATE sur match, stat-joueur, stat-franchis.



Modifié par Titus68 le 28/05/2014 22:42
Titus68
 Posté le 28/05/2014 à 22:50 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Pour la réponse précédente, faire 2 insert, 1 pour la table match et 1 pour la table stat_franchis. Si par contre les valeurs ont déjà été saisies et que le formulaire réaffiche en modification, il faudra plutot faire 2 update, 1:

update franchis .... where id_franchise = [valeur franchise dans formulaire]

update match ... where id_matche = [valeur match provenant du formulaire]

esimo
 Posté le 28/05/2014 à 22:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Et tout ça je dois le faire à chaque fois que je rentre une nouvelle confrontation? ou alors je rentre ça dans le formulaire une fois et c'est automatisé après ?

je suis vraiment novice ..

Titus68
 Posté le 29/05/2014 à 01:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Il faut déjà coder le formulaire une seule fois en paramétrant la saisie.

Le langage ou le logiciel utilisé pour écrire le formulaire c'est quoi au juste (du html, du javascript ... ou c'est un logiciel qui génère le formulaire automatiquement) ? Les ordres insert, update, select (langage sql) c'est pour intégrer dans un formulaire que l'on décrit manuellement mais peut-être que le logiciel que tu utilises génère ce code automatiquement.

C'est une application web ?



Modifié par Titus68 le 29/05/2014 01:08
esimo
 Posté le 29/05/2014 à 01:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

J'utilise Open office base ..

Titus68
 Posté le 29/05/2014 à 01:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Je ne connais malheureusement pas du tout. Je viens de voir un tuto, çà a l'air pas mal. En fait il génère un peu tout de façon transparente (pas de codage). Le problème souvent c'est que comme on n'a pas trop là main sur le code on ne peut pas faire ce que l'on veut dans le détail.

Je pense que tu n'auras pas besoin des ordres dont je t'ai parlé (select, update ...)

Le mieux serait sans doute que quelqu'un qui utilise openbase de cette façon te fournisse les réponses, moi je risque plus de t'embrouiller.

A+



Modifié par Titus68 le 29/05/2014 01:28
esimo
 Posté le 29/05/2014 à 12:11 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour, sais tu quelles instructions j'ai besoin et surtout comment les éditer?

esimo
 Posté le 29/05/2014 à 13:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

oui je connais les fonction basique : SELECT, FROM, WHERE etc

Mais il y à t'il une fonction spéciale pour ce que j'aimerai faire ?

Publicité
Pages : [1] 2 ... Fin
Page 1 sur 2 [Fin]

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
79,99 €Imprimante Laser HP LaserJet Pro M15w (monochrome, USB, WiFi) à 79,99 €
Valable jusqu'au 02 Octobre

Boulanger propose actuellement l'imprimante Laser monochrome HP LaserJet Pro M15w à 79,99 € alors qu'on la trouve ailleurs à partir de 99 €. Cette imprimante peut être utilisée sans fil via le WiFi ou bien directement connectée à votre ordinateur via son port USB. Elle est fournie avec un toner de démarrage (500 pages). Comptez 56,99 € pour le toner de remplacement HP officiel (1000 pages) ou 32,89 € pour les 2 toners de remplacement compatibles chez Amazon (1000 pages chacun)


> Voir l'offre
299,99 €Xbox Series S en précommande à 299,99 €
Valable jusqu'au 03 Octobre

La nouvelle console Xbox Series S de Microsoft sort le 10/11 et vous pouvez d'ores et déjà la précommander à 299,99 €. Cette version plus compacte embarque une puce graphique de 4 teraflops et est compatible avec 4 générations de jeux. Elle intègre un SSD de 512 Go. Elle n'a pas de lecteur optique. Sur AmazonCdiscountFnac, ...


> Voir l'offre
14,90 €Windows 10 Pro 32/64 bits OEM à 14,90 €
Valable jusqu'au 06 Octobre

Le vendeur sérieux LicenSE-ONLine propose sur Amazon la clé d'activation pour Windows 10 professionnel en français 32 bits / 64 bits à 14,90 €. Cette clé livrée par email fonctionne avec l'outil d'installation et de création de support de Microsoft que vous pouvez télécharger ici ou directement avec l'ISO de Windows 10 Pro. De quoi installer légalement Windows 10 Pro sur un PC. Pour en savoir plus sur l'achat et l'installation d'une clé OEM de Windows 10, suivez les indications de notre dossier pratique.


> Voir l'offre

Sujets relatifs
VB 2005 Express Edition Beta
compilation et édition
 > Tous les forums > Forum Autres langages