cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 2019
-
Modifié par cs_ShayW le 2/07/2015 à 17:29
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 2019
-
14 juil. 2015 à 17:22
Bonjour,
J'essai d'écrire une requete sans succès access vb.net
je possède de deux tables
Player et Results
Les champs de Player sont code Playercode - automatic number
Name - text
les champs de Results sont coderesult - automatic number
codeplayer1 - number
points1 - number
codeplayer2 - number
points2 - number
ex
Player
Playercode Name
100..........Toto
101......... Titi
102........ Tata
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201626 14 juil. 2015 à 16:38
Salut,
vu la structure de la table Result, il n'y a pas vraiment de solution élégante.
Mais tu paux faire un truc comme ça :
select
p.Name as joueur,
r.points1 as pts,
p2.Name as adversaire,
r2.points2 as ptsa
from
Player p
inner join Result r on p.PlayerCode = r.codePlayer1
inner join Result r2 on r2.coderesul = r.coderesul
inner join Player p2 on p2.PlayerCode = r2.codeplayer2
where
r.codePlayer1 = 100
and r2.codeplayer2 <> 100
union
select
p.Name as joueur,
r.points1 as pts,
p2.Name as adversaire,
r2.points2 as ptsa
from
Player p
inner join Result r on p.PlayerCode = r.codePlayer1
inner join Result r2 on r2.coderesul = r.coderesul
inner join Player p2 on p2.PlayerCode = r2.codeplayer2
where
r.codePlayer1 <> 100
and r2.codeplayer2 = 100
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 14 juil. 2015 à 17:22
Merci pour la réponse
mais pour l'instant j'ai modifié la table result et ajouter une table
Games codegame - automatic number dategame - date data1 - number data2 - number
Results coderesult - automatic number codeplayer1 - number points1 - number codegame number
pour chaque match joué entre deux joueurs j'enregistre dans la table Game ,obtiens le dernier codegame et enregistre les deux joueurs dans la table Result avec le même codegame
pour obtenir les résultats selon un joueur
Dim command As New OleDbCommand Dim recordset As OleDbDataReader Dim codeplayer As Integer recordset = Nothing command.Connection = Connection codeplayer = GetCodePlayer(FamillyName) command.CommandText = "SELECT Player.Name ,Results.points1, Games.data1, Games.data2, Games.dategame " command.CommandText &= "FROM Player ,Results , Games WHERE Player.Playercode = Results.playercode AND Results.codegame = Games.Codegame AND Games.Codegame IN ( SELECT Codegame FROM Results WHERE playercode = [?] ) ; " command.Parameters.Add("?", OleDbType.Integer).Value = codeplayer recordset = command.ExecuteReader() Return recordset