Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2544 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Petit soucis en SQL

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Petit soucis en SQL

n°649725
tchoupinet​te
Posté le 20-02-2004 à 13:32:03  profilanswer
 

Mon je m'explique :
J'ai une table contenant les champ suivant :
 
une durée prévisionnelle
une durée réalisée
une durée absence
une date
une temoin qui peut prendre les valeurs suivantes : inscrit, demandé, réalisé, absent
 
j'ai trois requetes différente :
 
une permettant de trouver les heures réalisées pour chaque mois: c la somme des heures de la colonne durée réalisée pour les témoin realise et inscrit
 
une autre permettant de trouver les heures engagées pour chaque mois : différence entre la somme des heures de la colonne durée_prévisionnelle et de la somme des heures durée absence et durée_réalisée avec le temoin inscrit
 
une permettant de trouver les heures d'absence pour chaque mois: somme des heures de la colonne durée absence pour les témoin realise, inscrit et absent
 
et enfin une permettant de trouvé les heures demandées pour chaque mois : somme de la colonne durée prévue avec le temoin demande
 
toutes ces requetes me renvoie une valeur pour chaque mois suaf la dernière qui me renvoit une valeur que pour 9 mois.
 
je dois faire une requete qui se sert de toutes celles présentées précédemment pour ensuite faire un graphique mais à cause de la requete qui ne renvoit que 9 mois je perds 3 mois en cours de route et ej ne vois pas comment résoudre ca.
 
si quelqu'un a une idée ce serait sympa
 
merci d'avance  :jap:

mood
Publicité
Posté le 20-02-2004 à 13:32:03  profilanswer
 

n°649794
dalcap
Posté le 20-02-2004 à 14:23:11  profilanswer
 

:hello:
 
peut-être n'as tu que 9 mois où il y a des enregistrements avec 'demandé' ...
 
tu utilises quoi pour faire ton graphique ? excel ?

n°649802
tchoupinet​te
Posté le 20-02-2004 à 14:25:22  profilanswer
 

dalcap a écrit :

:hello:
 
peut-être n'as tu que 9 mois où il y a des enregistrements avec 'demandé' ...
 
tu utilises quoi pour faire ton graphique ? excel ?
 


 
oui je n'ai que 9 mois pour les demandes mais il me faut quand meme les 12
j'utilise access c'est des grahiques fait à partir de requete pour que ce soit fait automatiquement à l'ouverture d'access

n°649814
dalcap
Posté le 20-02-2004 à 14:28:32  profilanswer
 

ok, je ne sais pas si ça va marcher avec access, j'ai jamais fait de vba avec access...
 
j'imaginais un truc (avec excel) qui te permettrait d'afficher tes 3 premieres requetes en tableau, et ensuite de parcourir les mois et de faire une requete pour chaque mois égal au mois déjà présent dans le tableau...

n°649819
tchoupinet​te
Posté le 20-02-2004 à 14:31:00  profilanswer
 

faut pas que j'utilise excel, sinon ce serait trop simple ;)

n°649820
tchoupinet​te
Posté le 20-02-2004 à 14:31:21  profilanswer
 

enfin merci quand meme pour ton aide

n°649830
MagicBuzz
Posté le 20-02-2004 à 14:36:39  profilanswer
 

left outer join à un endroit de ta requête histoire d'émuler des "null" à la place des lignes manquantes.

n°649835
tchoupinet​te
Posté le 20-02-2004 à 14:37:53  profilanswer
 

ok je vais essayer ca oui

n°649884
tchoupinet​te
Posté le 20-02-2004 à 15:00:58  profilanswer
 

ca marche pas :cry:

n°649944
dalcap
Posté le 20-02-2004 à 15:30:40  profilanswer
 

peux tu montrer le code de ta 4eme requete stp?

mood
Publicité
Posté le 20-02-2004 à 15:30:40  profilanswer
 

n°649946
tchoupinet​te
Posté le 20-02-2004 à 15:32:43  profilanswer
 

pas aujourd'hui parce que je m'en vais là et je suis un peu pressée, je verrai ca lundi !

n°650001
Poipoi
Vive Grumly
Posté le 20-02-2004 à 16:21:00  profilanswer
 

:ouch:  tu parts à 15h30, beh ça va...
 
sinon la méthode de MagicBuzz est la bonne
 
 :hello:

n°651542
tchoupinet​te
Posté le 23-02-2004 à 08:49:54  profilanswer
 

quelqu'un peut me dire ce qui ne va pas dans ma requete (j'ai pas trop l'habitude d'utiliser "left outer join" ) :

Code :
  1. SELECT Sum(STAN_FINAL.DUREE_Prévisionnelle) AS Heures_demandées,  Format([STAN_final].[DATE_Début],"mmmm" ) AS Mois
  2. FROM STAN_FINAL left outer join mois on  Format([STAN_final].[DATE_Début],"mmmm" )= mois.mois
  3. WHERE (((STAN_FINAL.TEMOIN_STAN)="demande" ))
  4. GROUP BY  Format([STAN_final].[DATE_Début],"mmmm" );

n°651576
vttman2
Je suis Open ...
Posté le 23-02-2004 à 10:12:22  profilanswer
 

Salut
T'as quoi comme erreur avec ta requête ?
(qui me parait pas mal d'ailleurs ...)

n°651578
tchoupinet​te
Posté le 23-02-2004 à 10:13:13  profilanswer
 

j'ai pas d'erreur en fait, je veux récupérer tous les mois meme si y'a pas de valeur dans stan final mais j'en ai que 9 au lieu de 12 ...
 
d'ailleurs la requete a été modifié :
 

Code :
  1. SELECT Sum(STAN_FINAL.DUREE_Prévisionnelle) AS Heures_demandées, Format([STAN_final].[DATE_Début],"mmmm" ) AS Mois
  2. FROM mois LEFT JOIN STAN_FINAL ON mois.mois= Format([STAN_final].[DATE_Début],"mmmm" )
  3. WHERE (((STAN_FINAL.TEMOIN_STAN)="demande" ))
  4. GROUP BY Format([STAN_final].[DATE_Début],"mmmm" );


Message édité par tchoupinette le 23-02-2004 à 10:13:51
n°651581
vttman2
Je suis Open ...
Posté le 23-02-2004 à 10:18:55  profilanswer
 

Et ça ça te donne quoi ?
SELECT Sum(STAN_FINAL.DUREE_Prévisionnelle) AS Heures_demandées, Format([STAN_final].[DATE_Début],"mmmm" ) AS Mois  
FROM mois LEFT JOIN STAN_FINAL ON mois.mois= Format([STAN_final].[DATE_Début],"mmmm" )  
WHERE (STAN_FINAL.TEMOIN_STAN="demande" or
STAN_FINAL.TEMOIN_STAN is null)  
GROUP BY Format([STAN_final].[DATE_Début],"mmmm" );  

n°651598
tchoupinet​te
Posté le 23-02-2004 à 10:45:21  profilanswer
 

ca change rien ...

n°651600
HappyHarry
Posté le 23-02-2004 à 10:46:39  profilanswer
 

c'est access qu'est tout pourri :o
 
a partir du moment ou tu fais un group by, il zappe les lignes ou le champ en question est null

n°651601
tchoupinet​te
Posté le 23-02-2004 à 10:47:00  profilanswer
 

ouais et si je fais pas de group by, il rale :o

n°651605
HappyHarry
Posté le 23-02-2004 à 10:47:49  profilanswer
 

ben forcément [:spamafote]
 
spour ca que l'équivalent du isnull de sql server ca aurait été pas mal


Message édité par HappyHarry le 23-02-2004 à 10:48:13
n°651608
tchoupinet​te
Posté le 23-02-2004 à 10:48:57  profilanswer
 

ouais ... je vais me débrouiller autrement, on peut faire des join quand y'a plus de 2 tables à joindre ?

n°651611
HappyHarry
Posté le 23-02-2004 à 10:49:39  profilanswer
 

ben euh oué

n°651616
tchoupinet​te
Posté le 23-02-2004 à 10:54:03  profilanswer
 

j'ai essayé mais ca marche pas ... :/

n°651621
HappyHarry
Posté le 23-02-2004 à 10:56:06  profilanswer
 

skoi ta requete ?

n°651626
tchoupinet​te
Posté le 23-02-2004 à 10:57:25  profilanswer
 

ben je l'ai supprimé et je recommence celle ci ...

n°651634
tchoupinet​te
Posté le 23-02-2004 à 11:01:54  profilanswer
 

la voila :
 
select ha.mois, ha.heures_absence, hd.heures_demandées, he.heures_engagées
from heures_demandées hd  
right join  heures_absence ha on ha.mois=hd.mois  
right join heures engagées he on he.mois=hd.mois;

n°651635
HappyHarry
Posté le 23-02-2004 à 11:03:21  profilanswer
 

les joitures a droite c'est voulu ? :heink:

n°651642
tchoupinet​te
Posté le 23-02-2004 à 11:11:35  profilanswer
 

vi c voulu pourquoi ?

n°651643
HappyHarry
Posté le 23-02-2004 à 11:12:18  profilanswer
 

c plutot rare de les faire comme ca
en général elles sont en inner join ou en left/right outer join

n°651647
tchoupinet​te
Posté le 23-02-2004 à 11:15:26  profilanswer
 

ben en fait access enlève le outer tout seul et le transorfe en left/right join tout court

n°651752
vttman2
Je suis Open ...
Posté le 23-02-2004 à 12:37:20  profilanswer
 

Toute façon tu y arriveras, avec Access, même
si ça peut sembler bancal parfois, tu fais tout
ce que tu veux avec !
 
=> Autre essai  
 
SELECT Sum(iif(STAN_FINAL.DUREE_Prévisionnelle is null,0,STAN_FINAL.DUREE_Prévisionnelle)) AS Heures_demandées, mois.mois AS Mois  
FROM mois LEFT JOIN STAN_FINAL ON mois.mois= Format([STAN_final].[DATE_Début],"mmmm" )  
WHERE (STAN_FINAL.TEMOIN_STAN="demande" or  
STAN_FINAL.TEMOIN_STAN is null)  
GROUP BY mois.mois;  

n°651770
tchoupinet​te
Posté le 23-02-2004 à 12:51:52  profilanswer
 

toujours que 9 valeurs ...

n°651776
tchoupinet​te
Posté le 23-02-2004 à 12:54:20  profilanswer
 

c bon j'ai résolu mon pb d'une autre manière grace à toi.
merci :jap:


Message édité par tchoupinette le 23-02-2004 à 12:54:34
n°651783
vttman2
Je suis Open ...
Posté le 23-02-2004 à 13:03:54  profilanswer
 

Ok c toujours ça ;-)

n°651787
tchoupinet​te
Posté le 23-02-2004 à 13:10:18  profilanswer
 

:)

n°651816
tchoupinet​te
Posté le 23-02-2004 à 13:49:51  profilanswer
 

un autre soucis pour la meme requete comment je peux faire pour avoir le cumulé de tous les mois plutot que la somme pour le mois en cours ?

n°651818
HappyHarry
Posté le 23-02-2004 à 13:50:40  profilanswer
 

sum sur la table, sans faire la jointure ? :ange:

n°651824
tchoupinet​te
Posté le 23-02-2004 à 13:53:56  profilanswer
 

:??:

n°651827
HappyHarry
Posté le 23-02-2004 à 13:55:33  profilanswer
 

ben la somme tous mois confondus, ca revient a betement sommer le champ jesaisplusquoi de tous les enregistrements de ta table, non ? (moyennant les restrictions éventuelles supplémentaires)

n°651828
tchoupinet​te
Posté le 23-02-2004 à 13:56:43  profilanswer
 

je veux le cumul par mois
en gros je veux  
janvier = janvier
février = février + janvier
mars = mars + février
...

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Petit soucis en SQL

 

Sujets relatifs
Soucis avec variable et espacepetit problème avec mon forum phpbb
[SQL/access][Votre avis] Petit script de news
petit soucis de présentation lié à la résolutionSQL serveur changer le propriétaire de la BD
[HTML/JS] petit soucis d'espace sous une image[VB6] prob quote avec requête SQL
Plus de sujets relatifs à : Petit soucis en SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR