Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
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 11/02/2011, 15h38   #1
Candidat au titre de Membre du Club
 
Celine Delfuego
Inscription : mai 2010
Messages : 36
Détails du profil
Informations personnelles :
Nom : Celine Delfuego

Informations forums :
Inscription : mai 2010
Messages : 36
Points : 10
Points : 10
Par défaut Voir si un groupe a uniquement du positif

Bonjour,

Je ne suis surement pas claire dans mon titre, j'espere l'etre un peu plus dans mon explication
J'ai des dates, et des groupes, type:

Projet| produit | date reelle | date plannifiee
1 | 345A | 2010-09-12 | 2010-09-20
1 | 326C | 2010-10-13 | 2010-09-20
1 | 345R | 2010-09-4 | 2010-09-20
2 | 432C | 2010-08-6 | 2010-08-10
2 | 321D | 2010-08-10 |2010-08-10

Je voudrias regarder la difference entre date plannifiee et la date reelle, si un seul des produits est en retard je veux que le groupe soit marque...
Peut etre que en SQL ce sera plus clair...Voila ce que j'ai essaye:

Code :
1
2
3
4
5
6
7
8
$sql= "SELECT SUM(Late) As NotAccepted, MAX(Month) As InMonth, Project, MAX(Year) As InYear FROM
(SELECT PROJECT As Project,
              'Late'= CASE WHEN DATEDIFF(day,DATEREELLE,CAST((DATEPLANNIFIEE) As datetime))<'0' THEN 1 ELSE 0 END,
              DATEPART(m, ".$condition.") As Month,
              DATEPART(yyyy, ".$condition.") As Year
 FROM table1
 WHERE ".$condition." > '".$DateChoosen."' )
GROUP BY Projet" ;
Ca bloque sur le GROUP BY
Mais peut etre qu'il y a une methode plus simple @.@
Help...

Celine

PS: Si j'ai loupe une autre discussion qui avait le meme sujet, veuillez m'en excuser
dufeu.celine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 21h32   #2
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Bonjour,

Vous voulez quoi comme résultat ?

A/La liste des projets qui contient au moins un produit en retard ?

Projet| Nbr Produit retard
1 | 1

B/La liste des projets avec le nombre de produit est en retard (0 si aucun) ?

Projet| Nbr Produit retard
1 | 1
2 | 0

Code :
1
2
3
SELECT t.projet, sum(case when t.datereelle> t.dateplannifiee then 1 else 0 end) nbr_produit_retard
FROM produits t
GROUP BY t.projet

Et sur quel version de fb vous travaillez ?
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 01h20   #3
Candidat au titre de Membre du Club
 
Celine Delfuego
Inscription : mai 2010
Messages : 36
Détails du profil
Informations personnelles :
Nom : Celine Delfuego

Informations forums :
Inscription : mai 2010
Messages : 36
Points : 10
Points : 10
...
....
.....
....
.....

Merciiiiiii! Je ne savais pas qu'on pouvait faire un SUM directement avec un CASE a l'interieur! Et je n'avais pas penser a comparer aussi simplement je reutilisais une formule d'une autre requete...
erf! Tete en l'air que je suis!

Deja je n'ai plus de message d'erreur, maintenant je vais verifier les resultats.
Merci beaucoup.

Celine
dufeu.celine 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 09h48.


 
 
 
 
Partenaires

Hébergement Web