|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Développeur Web Inscription : janvier 2011 Messages : 48 ![]() |
Bonjour, je dispose d'une table de la forme suivante:
[Email] | [Client] | [Date].... ma procédure stockée doit avoir comme attribut deux dates et la valeur du client: @Datestart @Datestop @Customer Je voudrais récuperer l'ensemble des nouveaux clients pendant la période de date donnée. Sachant que chaque ligne de la table correspond à un enregistrement d'un telechargement ex: "email@mail1.com" | client 1 | 2011-06-06 "email@mail2.com" | client 2 | 2011-05-04 "email@mail1.com" | client1 | 2010-04-03 .... ... L'adresse mail des clients apparait à chaque enregistrement d'un telechargement, et donc en gros, je souhaiterais avoir la liste des nouvelles adresses mails pendant la pèriode donnée et qui ne sont pas dans la table avec le même client. (par ex si adresse1 est déja présente mais avec le client2, elle compte quand même pour un nouveau client pour le client1) Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() |
Code :
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
||
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Développeur Web Inscription : janvier 2011 Messages : 48 ![]() |
Merci beaucoup, la procédure stockée fonctionne, mais elle est beaucoup trop longue (environ 30 seconde pour s'éxécuter). Je pense qu'il n'y a pas mieu de toutes façon a part modifié la table pour crée une colonne qui va dire si c'est le premier enregistrement ou non de cet utilisateur.
Quand pensez vous? avez vous d'autre idée? |
|
|
00
|
|
|
#4 | ||||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour,
vous pouvez créer un index pour accélérer la requête : Code SQL :
Vous pouvez aussi essayer cette requête : Code SQL :
|
||||
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Développeur Web Inscription : janvier 2011 Messages : 48 ![]() |
Merci cela fonctionne. On m'a conseillé de faire cette requête avec un LEFT OUTER JOIN. Avez vous une idée de comment faire?
Merci beaucoup pour toutes ces réponses. |
|
|
00
|
|
|
#6 | ||
|
Candidat au titre de Membre du Club
![]() Développeur Web Inscription : janvier 2011 Messages : 48 ![]() |
Pour le moment j'ai fait ceci:
Code :
|
||
|
|
00
|
|
|
#7 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
ça donnerait ça :
Code SQL :
Mais je doute que cette requête vous apporte de meilleurs performances que celle proposée par Ibersek. Avez-vous créé l'index ? quels sont les résultats ? |
||
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Développeur Web Inscription : janvier 2011 Messages : 48 ![]() |
Il y avait encore quelques erreurs au sujet d’ambiguïté(pour la dernière requête).
Je vais utiliser la requête qui comporte le "having". Merci beaucoup |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com