akhsas fatima zahra
Messages postés9Date d'inscriptionsamedi 17 mai 2014StatutMembreDernière intervention 7 août 2014
-
Modifié par nancygmail le 4/06/2014 à 18:12
mpmp93
Messages postés6652Date d'inscriptionmercredi 13 avril 2011StatutMembreDernière intervention28 septembre 2015
-
7 oct. 2014 à 08:26
bonjour,
je voudrais faire des statistiques des nouveaux clients sur ma base de données, je Je travaille en VB.NET, sous SQL SERVER.
et je cherche à avoir un tableau avec 2 colonnes:
mois et nbre_client
'mois'= le mois de la 1 ère l'inscription de client
'nbre_client' = le nombre des clients qui ont la 1ere inscription a cette mois
police=ma table
voila la requête:
select COUNT(distinct cin ) as nbre_client,MONTH(date_effet) as mois from Police group by date_effet having month(min(date_effet))=1 and year(min(date_effet))=2013
le problème de cette requête c'est quand je change le mois elle me donne des résultats erronés.
Merci d'avance pour votre aide qui me permettra d'avancer
jordane45
Messages postés38135Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention13 avril 2024344 4 juin 2014 à 19:09
Bonjour,
Tu as essayé de faire ton group by sur le month(date) ?
select COUNT(distinct cin ) as nbre_client
,MONTH(date_effet) as mois
from Police
group by month(date_effet)
having month(min(date_effet))=1
and year(min(date_effet))=2013
akhsas fatima zahra
Messages postés9Date d'inscriptionsamedi 17 mai 2014StatutMembreDernière intervention 7 août 2014 4 juin 2014 à 19:25
oui justement,
parck je veux afficher les résultats selon chaque mois cdr nombre des nouveaux clients inscrits de chaque mois
akhsas fatima zahra
Messages postés9Date d'inscriptionsamedi 17 mai 2014StatutMembreDernière intervention 7 août 2014 4 juin 2014 à 19:36
j'ai essayé de créer une autre requête ,presque le nécessaire, elle affiche le nombre des personnes ,mais le problème c'est que je veux afficher aussi le mois d'inscription
voila la requête 2:
select count(*) as NBRE
from (
select Date_effet
from police
where month(Date_effet)=1 and YEAR(date_effet)=2013
group by date_effet) T
jordane45
Messages postés38135Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention13 avril 2024344 5 juin 2014 à 01:12
tu as testé celle que je t'ai donné ?
akhsas fatima zahra
Messages postés9Date d'inscriptionsamedi 17 mai 2014StatutMembreDernière intervention 7 août 2014 5 juin 2014 à 13:00
jordane45
Messages postés38135Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention13 avril 2024344 Modifié par jordane45 le 5/06/2014 à 13:28
SELECT year(date_effet) as Année
,MONTH(date_effet) as mois
,COUNT(distinct cin ) as nbre_client
FROM Police
WHERE month(date_effet)>=1
AND year(date_effet)>=2013
group by month(date_effet)
Avant de poser une question, merci de lire la charte du site. Cordialement, Jordane
akhsas fatima zahra
Messages postés9Date d'inscriptionsamedi 17 mai 2014StatutMembreDernière intervention 7 août 2014 5 juin 2014 à 15:47
je suis en train de faire une application de gestion d'une agence d'assurance j'ai deux tables client, et police
chaque client peut avoir une ou plusieurs police le champs commun entre ces deux tables c'est la CIN donc ce que je veux c'est afficher la 1ere police pour chaque client selon la date d'effet de la police.
la dernière requête que tu ma donné affiche des résultats mais quand je change le mois elle affiche d'autre polices des mêmes clients
la requête 2 affiche les bons résultats (le nombre des clients )mais mois je veux afficher deux champs nbre et mois
select count(*) as NBRE
from (
select Date_effet
from police
where month(Date_effet)=1 and YEAR(date_effet)=2013
group by date_effet) T
merci d'avance
jordane45
Messages postés38135Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention13 avril 2024344 5 juin 2014 à 16:02
Tu as deux tables.... mais dans ta requête tu n'en utilise qu'une seule ... !!?
la requête 2 affiche les bons résultats (le nombre des clients )
Ta requête te donne le nombre de ligne total retourné par la sous requête.... pour le mois que tu y a indiqué....
Si tu veux absolument partir de ta requête... il te suffit de faire :
select count(*) as NBRE
,month(T.Date_effet) as mois
from (
select Date_effet
from police
where month(Date_effet)=1 and YEAR(date_effet)=2013
group by date_effet) T
mais peut être ai-je mal compris ta question... et dans ce cas je t'invite à nous réexpliquer TRES clairement ce que tu souhaites obtenir.. quit à nous mettre un exemple de tes tables et du résultat à obtenir....
j'ai testé celle que tu m'a donné ,elle affiche un msg d'erreur
La colonne 'police.Date_effet' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY.
jordane45
Messages postés38135Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention13 avril 2024344 5 juin 2014 à 17:33
A mon avis tu as fait une erreur lors de la recopie de la requête car chez moi elle passe correctement.
tu peux nous copier/coller EXACEMENT la requête que tu as saisis ?
akhsas fatima zahra
Messages postés9Date d'inscriptionsamedi 17 mai 2014StatutMembreDernière intervention 7 août 2014 5 juin 2014 à 17:42
ben,
j'ai deux tables client et police:
client (cin,nomassurer,adresse,tel....)
police (cin,N_attestation,N_police,Date_effet,date_echeance.....)
je veux afficher le nombre des nouveaux clients pour chaque mois
par exemple: on a un client qui s'appelle gerrard il a plusieurs polices (01/01/2013 ,01/05/2013.....) la 1ere a la date du 01/01/2013
le problème de la requête que je t'ai donnée si je fait le mois 1 elle me donne le nombre de police du mois 1 parmi eux la police de gerrard et si je tape mois 5 elle me donne une autre police de gerrard du mois 5
akhsas fatima zahra
Messages postés9Date d'inscriptionsamedi 17 mai 2014StatutMembreDernière intervention 7 août 2014 5 juin 2014 à 17:44
je m'excuse si j'avais provoqué aucun dérangement pour vous
jordane45
Messages postés38135Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention13 avril 2024344 5 juin 2014 à 17:50
???
jordane45
Messages postés38135Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention13 avril 2024344 5 juin 2014 à 18:06
SELECT COUNT(*) as NB_cin
,T.mois
FROM (select distinct cin ,
min(month(p.date_effet)) as mois
FROM police p
WHERE month(p.date_effet)=1
GROUP BY cin ) T
akhsas fatima zahra
Messages postés9Date d'inscriptionsamedi 17 mai 2014StatutMembreDernière intervention 7 août 2014 6 juin 2014 à 19:17
tjr ce msg d'erreur
" Msg 8120, Niveau 16, État 1, Ligne 2
La colonne 'T.mois' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY."
jordane45
Messages postés38135Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention13 avril 2024344 Modifié par jordane45 le 6/06/2014 à 19:36
Testes ceci :
SELECT COUNT(T.cin) as NB_cin
,T.mois
FROM (select distinct cin ,
min(month(p.date_effet)) as mois
FROM police p
WHERE month(p.date_effet)=1
GROUP BY cin ) T
GROUP BY T.cin
4 juin 2014 à 19:25
parck je veux afficher les résultats selon chaque mois cdr nombre des nouveaux clients inscrits de chaque mois
4 juin 2014 à 19:36
voila la requête 2:
5 juin 2014 à 01:12
5 juin 2014 à 13:00