DISTINCT à partir d'une jointure
Résolu/Fermé
Bionik
Messages postés
4232
Date d'inscription
jeudi 19 août 2010
Statut
Modérateur
Dernière intervention
3 août 2016
-
10 avril 2013 à 14:08
Ambucias Messages postés 47311 Date d'inscription mardi 2 février 2010 Statut Modérateur Dernière intervention 15 février 2023 - 11 avril 2013 à 23:19
Ambucias Messages postés 47311 Date d'inscription mardi 2 février 2010 Statut Modérateur Dernière intervention 15 février 2023 - 11 avril 2013 à 23:19
A voir également:
- 2 colis distinct shein
- Hong kong france en avion colis shein ✓ - Forum Loisirs / Divertissements
- Colis en transit Hong Kong - Forum Consommation & Internet
- Vol chine-france temps colis shein - Forum Consommation & Internet
- Terminal de fret shein - Forum Consommation & Internet
- Colis shein non recu - Forum Consommation & Internet
4 réponses
dam75
Messages postés
1051
Date d'inscription
lundi 4 mai 2009
Statut
Webmaster
Dernière intervention
21 février 2023
67
11 avril 2013 à 10:49
11 avril 2013 à 10:49
Salut,
Sacrée requête :)
Pour être sûr de bien comprendre, dans ton exemple, tu ne veux QUE la ligne "2013-06-10" parce que cette date est unique, ou tu veux TOUTES les dates mais avec une seule ligne pour chaque ?
Si c'est ce 2ème cas, et que tu ne veux QUE les datePrix différents, il va falloir indiquer une fonction de groupement sur les autres colonnes ... car sinon, pour la date 2013-06-25, SQL ne saura pas lequel des 6 enregistrements tu veux ?
(MAX, MIN, ...) :
Dis moi :)
Sacrée requête :)
Pour être sûr de bien comprendre, dans ton exemple, tu ne veux QUE la ligne "2013-06-10" parce que cette date est unique, ou tu veux TOUTES les dates mais avec une seule ligne pour chaque ?
Si c'est ce 2ème cas, et que tu ne veux QUE les datePrix différents, il va falloir indiquer une fonction de groupement sur les autres colonnes ... car sinon, pour la date 2013-06-25, SQL ne saura pas lequel des 6 enregistrements tu veux ?
(MAX, MIN, ...) :
SELECT MAX(code), MAX(console), MAX(dateVente), ... , datePrix FROM (<ta requête ici>) GROUP BY datePrix
Dis moi :)
Ambucias
Messages postés
47311
Date d'inscription
mardi 2 février 2010
Statut
Modérateur
Dernière intervention
15 février 2023
137
11 avril 2013 à 11:51
11 avril 2013 à 11:51
Bonjour Bionik fiston et ami,
T'as de la veine ou il y a quelqu'un la haut qui t'aime ! Tu reçois de l'aide de Damien, le top des tops, l'éminence en la matière !
Bonne journée
T'as de la veine ou il y a quelqu'un la haut qui t'aime ! Tu reçois de l'aide de Damien, le top des tops, l'éminence en la matière !
Bonne journée
dam75
Messages postés
1051
Date d'inscription
lundi 4 mai 2009
Statut
Webmaster
Dernière intervention
21 février 2023
67
11 avril 2013 à 12:21
11 avril 2013 à 12:21
Moqueur va ... ^^ non mais sans déc c'est pas souvent qu'il y a des requêtes aussi rigolotes et bien étayées ... si j'avais le temps je me monterais la même structure pour tester :D
Bionik
Messages postés
4232
Date d'inscription
jeudi 19 août 2010
Statut
Modérateur
Dernière intervention
3 août 2016
185
11 avril 2013 à 14:23
11 avril 2013 à 14:23
Merci ô Sir Dam,
Un bon café, et quelques minutes (ok, quelques heures) de réflexion ont suffit pour résoudre le problème.
En fait, j'avais juste fait une modélisation "on-the-fly" de ma base, j'avais pas bien pris le temps de bien faire les choses. Sur ce, je suis reparti de zéro et j'ai refait la modélisation qui me donne trois tables, une pour jeux, une autre pour ventes et une dernière pour pRevient.
Voici ces tables:
table jeux
table ventes
table pRevient
Et le résultat que je voulais
Table Finale
Pour la requête qui donne cette dernière, c'est un peu ça:
Alors, c'est toujours aussi rigolote? :)
Mais ca, c'est juste un test et ça va beaucoup m'aider sur le système réél (mis en place d'une application "machin-truc" utilisant une base de données SQL Server, Accès, Excel, Sharepoint, PowerPivot et sans oublier PHP pour la partie programmation, déjà que j'avais galéré pour trouver le bon driver SQLServer-PHP, c'est bien parti ;).
Merci anyway de ton aide Dam ;)
PS: Ave Ambucias, je te charge de la partie Accès et Excel, ze ve voir ce ke ta dan le ventre :)
Un bon café, et quelques minutes (ok, quelques heures) de réflexion ont suffit pour résoudre le problème.
En fait, j'avais juste fait une modélisation "on-the-fly" de ma base, j'avais pas bien pris le temps de bien faire les choses. Sur ce, je suis reparti de zéro et j'ai refait la modélisation qui me donne trois tables, une pour jeux, une autre pour ventes et une dernière pour pRevient.
Voici ces tables:
table jeux
table ventes
table pRevient
Et le résultat que je voulais
Table Finale
Pour la requête qui donne cette dernière, c'est un peu ça:
SELECT jeux.nom, jeux.possesseur, r.dateVente, r.prixVente, r.prixRevient, r.Marges FROM jeux INNER JOIN (SELECT ventes.idJeux, ventes.dateVente, ventes.prixVente, [pRevient].prixRevient, [ventes].[PrixVente]-[pRevient].[PrixRevient] AS Marges FROM (ventes INNER JOIN (SELECT u.idJeux, u.dateVente, MAX(u.dateReception) AS dateMax FROM (SELECT ventes.idJeux, ventes.dateVente, pRevient.dateReception FROM ventes INNER JOIN pRevient ON ventes.idJeux = pRevient.idJeux WHERE pRevient.dateReception <= ventes.dateVente) AS u GROUP BY u.idJeux, u.dateVente) AS v ON ventes.dateVente = v.dateVente) INNER JOIN [pRevient] ON (v.idJeux = [pRevient]. idJeux) AND (v.dateMax = [pRevient].dateReception) GROUP BY ventes.idJeux, ventes.dateVente, ventes.prixVente, [pRevient].prixRevient, [ventes].[PrixVente]-[pRevient].[PrixRevient] ) AS r ON r.idJeux = jeux.idJeux ;
Alors, c'est toujours aussi rigolote? :)
Mais ca, c'est juste un test et ça va beaucoup m'aider sur le système réél (mis en place d'une application "machin-truc" utilisant une base de données SQL Server, Accès, Excel, Sharepoint, PowerPivot et sans oublier PHP pour la partie programmation, déjà que j'avais galéré pour trouver le bon driver SQLServer-PHP, c'est bien parti ;).
Merci anyway de ton aide Dam ;)
PS: Ave Ambucias, je te charge de la partie Accès et Excel, ze ve voir ce ke ta dan le ventre :)
Ambucias
Messages postés
47311
Date d'inscription
mardi 2 février 2010
Statut
Modérateur
Dernière intervention
15 février 2023
137
11 avril 2013 à 23:19
11 avril 2013 à 23:19
@Bionik, Merci pour ton inébranlable confiance dans mes talents, mais, justement j'ai le ventre vide Pour la partie Excel, mon Ange, voire Fanny, pourraient s'en charger mais elles ne sont pas membres. Dommage ! (Tu as pensé à rizvisa1 ou à TrowanD ?)
@Damien, on sait bien que la modestie est le genre de fierté qui blesse le moins,
@Damien, on sait bien que la modestie est le genre de fierté qui blesse le moins,