Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/10/2011, 13h28   #1
Invité de passage
 
Homme aziz amednagh
Développeur .NET
Inscription : juin 2010
Messages : 18
Détails du profil
Informations personnelles :
Nom : Homme aziz amednagh
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Communication - Médias

Informations forums :
Inscription : juin 2010
Messages : 18
Points : 4
Points : 4
Par défaut probleme SUM et MAX dans requête imbriquée

Bonjour a tous et a toutes,
j'espère que vous allez bien

j'ai une requête assez complexe (pour moi ) et j'aurai besoin de votre aide et merci par avance.

j'ai besoin de récupérer dans une table qui contient les visites de mon site certains informations, je vous donne un aperçu de ma table :
ID-- Member --- Visit --- Date
1--- Daniel ----- 1 ------01/01/2009
2--- Daniel ----- 1 ------10/01/2009
3--- Daniel ----- 1 ------13/10/2011
4--- Daniel ----- 1 ------14/10/2011

Par défaut le champs Visit ne contient que la valeur 1 c'est plus facile pour un SUM après

Maintenant ce que je veux c'est : le total des visite de Daniel de 2011 et la dernière date de visite, je sais qu'il faut utiliser un SUM(Visit) et un MAX(Date) mais a chaque fois il me donne le total sans prendre en compte la date.
je veux avoir ce résultat :
Member --- Total --- LastVisit
Daniel ----- 2 ------ 14/10/2011
amednagh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2011, 14h17   #2
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 062
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projets Générix
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2010
Messages : 1 062
Points : 1 515
Points : 1 515
Code :
1
2
3
4
5
 
SELECT member, sum(visite), max(date)
FROM latable
WHERE datepart(year, date) = 2011
GROUP BY member;
Ça marche pas ???

=> La seule limite de cette requête, c'est que si Daniel n'est pas venu en 2011, il n'y a aucune ligne retournée, donc on ne sait pas que sa dernière visite était en 2009.

C'est ça qui te pose problème ?


PS : Si visit est toujours égal à 1, pourquoi 1/ avoir ce champ 2/ ne pas utiliser count(*) la place de sum(visit) ?
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h34.


 
 
 
 
Partenaires

Hébergement Web