[Résolu]Fonction Si dans une requete

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

[Résolu]Fonction Si dans une requete

Message par Sanseau »

Bonsoir la communauté

J'ai un problème à résoudre concernant une nouvelle base devant gérer les congés du personnel

J'ai créé les tables, les formulaires, les requêtes pour effectuées les calculs et avoir les soldes
Jusque là impec
Mon soucis est de faire apparaitre dans une requête (servant pour établir un rapport) un membre du personnel rentré dans la table Agent mais n'ayant pris aucun congé (donc aucune référence dans les autres tables) car dans ce cas il n'apparait pas
Donc je voudrais pouvoir mettre dans la requête que si certain champs sont vides alors = 0 ou une autre valeur

Ci joint la base pour plus de compréhension du problème (ou explorer d'autre piste)

Merci pour votre aide ou vos idées
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Sanseau le 20 oct. 2008 10:42, modifié 1 fois.
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Avatar de l’utilisateur
Grenouille
ManitOOu
ManitOOu
Messages : 3223
Inscription : 13 janv. 2006 16:21
Localisation : Chasseneuil-du-Poitou / Futuroscope

Re: Fonction Si dans une requete

Message par Grenouille »

Bonsoir,

Je pense qu'il s'agit de la même problématique : http://user.services.openoffice.org/fr/ ... &sk=t&sd=a

A+
OpenOffice 4.1.5 et LibreOffice 5.3.4 (par obligation) sous Windows 7
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Fonction Si dans une requete

Message par Sanseau »

Bonsoir Grenouille

Hélas ce n'est pas similaire
Car je ne veux pas afficher que les agents ayant pris aucun congé , je veux affiché tous les agents ceux ayant pris des congé comme ceux n'ayant rien pris
De plus certaine requête (comme RequêteTotalCongeMaladie) n'ont pas de jointure elles groupent par idRefAgent et font la somme des congés hors si un agent n'a pas eu de congé maladie il n'apparait pas à l'exécution de cette requête ni d'une autre requête faisant appel à elle car aucune IdCongeMaladie ne lui est relié (donc c'est somme toute normale qu'il n'apparaisse pas)

Donc en fait je pense qu'il faut que je leur crées un Congé vierge à la création de leur fiche agent pour qu'ils apparaissent dans toutes les requêtes, car autrement je vois pas

Si quelqu'un a une autre idée merci de me l'indiquer

Alors à mon avis j'ai plus qu'à aller en section macro pour trouver une macro qui me permette d'insérer une fiche vierge dans chaque table congé à la création de chaque agent

Merci et @+
OpenOffice 4.1.3 ORB 1.2.1
Windows 10
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 08:42

Re: Fonction Si dans une requete

Message par Pierre-Yves Samyn »

Bonjour

La solution réside pourtant également dans les jointures... si j'ai bien compris ce que tu veux faire :lol:

Exemple pour la RequêteTotalCongeMaladie :

Code : Tout sélectionner

SELECT "TableAgent"."RefAgent", SUM( "TableCongeMaladie"."NbrJoursMaladie" ) AS "TotalMaladie" , 

IFNULL(SUM( "TableCongeMaladie"."NbrJoursMaladie" ), 0) AS "TotalPYS"

FROM "TableAgent"   

LEFT JOIN "TableCongeMaladie"  

ON "TableCongeMaladie"."IdRefAgent" = "TableAgent"."RefAgent" GROUP BY "TableAgent"."RefAgent"
Explications :
  • La jointure "gauche" liste tous les enregistrements de la table Agents, qu'ils soient liés ou non dans la table Congé.
  • La colonne TotalPys est facultative. Elle ne sert qu'à illustrer comment afficher zéro plutôt que rien dans le cas où l'agent n'a pas pris de congé.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Sanseau
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 280
Inscription : 13 juin 2008 10:14

Re: Fonction Si dans une requete

Message par Sanseau »

Bonjour

Un grand merci à PYS

Grâce à lui la solution est venue je ne pensais pas que cela soit possible si facilement
Mais si juste une modification des requêtes Pas de macro compliquée

:bravo: :bravo: :bravo: :bravo: et encore merci



PS: à priori il faut rentrer ces requêtes directement en mode SQL car en mode ébauche ça n'a pas fonctionné (après plusieurs essai et une totale incompréhension de ma part en voulant faire les autres requêtes)
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.3 ORB 1.2.1
Windows 10