begin process at 2012 05 27 02:20:32
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Access

 > 

Requêtes

 > 

SQL - Création d'une requête avec des sous requêtes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

SQL - Création d'une requête avec des sous requêtes

lundi 2 mars 2009 à 19:23:23 | SQL - Création d'une requête avec des sous requêtes

lepgwen

Bonjour,

Je suis sur une application qui rassemble des statuts de flux par serveur qui sont affectés à une ou plusieurs applications.

Je voudrais, en simplifiant (le but étant surtout d'avoir l'idée général pour créer la requête), que pour chaque application, une meme requête me renvoit le nombre de flux OK, le nombre de flux KO...

Exemple : Appli            OK              KO
               Toto               15                 5
               Titi                  5                 10

Pour cela j'ai plusieurs tables mais bon on va juste prendre en compte la table :
- STATUTS qui contient le serveur, le numéro du flux et le statut
- APPLI_SERVEURS_PORT qui contient le nom de l'application, le serveur, le numéro de flux

J'ai essayé avec des sous requêtes mais je ne n'arrive à obtenir ce que je veux.

Ma question est donc la suivante, malgré la simplicité apparante du petit tableau que je veux obtenir, je bloque sur la création de la requête. Je serais donc extrèmenet reconnaissante à la ou les personnes qui pourront m'aider à créer cette requête.

Merci de votre aide.



mardi 3 mars 2009 à 08:00:43 | Re : SQL - Création d'une requête avec des sous requêtes

Malkuth

Membre Club
Peux tu nous donnez la structures exact de ces table et même si possible une ou 2 ligne avec le résultat attendu, C'est bien plus simple pour comprendre. Merci d'avance ^^"
mardi 3 mars 2009 à 09:22:27 | Re : SQL - Création d'une requête avec des sous requêtes

lepgwen

Bonjour Malkuth,

Bien sur :

voici un exemple du contenu de la table STATUT :

- serveur            le numéro du flux            statut
   serveur1                     22                        OK
   serveur1                     80                        KO
   serveur2                      22                       KO                        

Table APPLI_SERVEURS_PORT :
nom de l'application      le serveur         le numéro de flux
    appli_toto                  serveur1                      80
    appli_titi                     serveur1                      22
    appli_toto                  serveur2                      22

Et donc ce que je veux obtenir c'est :
 Appli                OK                   KO
appli_toto            0                        2
appli_titi               1                        0

Est ce que c'est plus clair. Si ca ne l'est pas n'hésites pas à me redemander. Merci

mardi 3 mars 2009 à 09:23:23 | Re : SQL - Création d'une requête avec des sous requêtes

lepgwen

Désolée pour la mise en page, il a tout décalé... :S
mardi 3 mars 2009 à 09:55:23 | Re : SQL - Création d'une requête avec des sous requêtes

Malkuth

Membre Club
Réponse acceptée !
Ouai Nix aime bien saloper les mises en page :p

En premier lieu, évite les chaines de caractére pour indiquer un état, un booléen ou un entier est souvent plus simple à manipuler, si jamais tu veux laisser une trace de quel nombre correspond à quel état, tu fais une 'tite table style

EtatsFlux:
code Description
0         KO
1         OK
et comme ca un jour tu pourras rajouter si ca s'avére intéréssant :
2        Démarrage en cours

ceci mis a part :

SELECT
   APPLIS.Appli,
   (
      SELECT COUNT (*)
      FROM APPLI_SERVEURS_PORT
      INNER JOIN STATUT
         ON APPLI_SERVEURS_PORT.Serveur=STATUT.Serveur
         AND APPLI_SERVEURS_PORT.Port=STATUT.Port
      WHERE APPLI_SERVEURS_PORT.Appli= APPLIS.Appli
      AND STATUT.Statut = 'OK'
   ) AS OK,
   (
      SELECT COUNT (*)
      FROM APPLI_SERVEURS_PORT
      INNER JOIN STATUT
         ON APPLI_SERVEURS_PORT.Serveur=STATUT.Serveur
         AND APPLI_SERVEURS_PORT.Port=STATUT.Port
      WHERE APPLI_SERVEURS_PORT.Appli= APPLIS.Appli
      AND STATUT.Statut = 'KO'
   ) AS KO
FROM
(
   SELECT Appli
   FROM APPLI_SERVEURS_PORT
   GROUP BY Appli
) APPLIS

ceci devrais fonctionner, c'est assez "crade" mais je ne connais pas trés bien Access donc j'ai essayer d'éviter les opérations complexe, ca doit pouvoir être fortement optimisé.

peut-être ca sinon :

SELECT 
   APPLI_SERVEURS_PORT.Appli,
   SUM(IIF(STATUT.Statut='OK',1,0)) AS OK,
   SUM(IIF(STATUT.Statut='KO',1,0)) AS KO
FROM APPLI_SERVEURS_PORT
INNER JOIN STATUT
   ON APPLI_SERVEURS_PORT.Serveur=STATUT.Serveur
   AND APPLI_SERVEURS_PORT.Port=STATUT.Port
GROUP BY Appli

Si la deuxiéme fonctionne, elle me semble plus simple et plus optimisé...
mardi 3 mars 2009 à 13:46:11 | Re : SQL - Création d'une requête avec des sous requêtes

lepgwen

Merci beaucoup, je vais tester les deux solutions. Je te redirais ce que ca a donné.

encore merci

mercredi 11 mars 2009 à 14:00:34 | Re : SQL - Création d'une requête avec des sous requêtes

lepgwen

Bonjour,


J'ai testé et après adapation ca fonctionne :) pour info j'ai pris la première solution

Merci Bcp


Cette discussion est classée dans : application, création, flux, requête, requêtes


Répondre à ce message

Sujets en rapport avec ce message

[BAR]création d'une boîte à suggestion [ par jodanielprince ] Salut à toute la communauté! Je dois développer une application portant sur "développer une boîte de suggestion en ligne". Cette application permettra Copier une requête filtrée dans une table [ par mbachir84 ] Bonjour à tous, Voici mon problème. J'ai plusieurs requêtes qui dépendent toutes d'une requête principale "rqt Preparation Query". Ainsi, lorsque cache de requête mysql [ par sagat06 ] Bonjour à tous, je m'intéresse depuis peu au cache de requête mysql. Je travail en local sous XP avec wampserver 2.0 (Mysql5.0.51b) Je viens de m'ap problème de déploiment sql server express 2008 avec un logiciel tiers [ par lilj ] Bonjour, voilà, je voulais savoir si quelqu'un a déjà réussi à déployer sql server express 2008 par le biais d'installaware ? ou par le biais d'un aut Question de Logique =D [ par DannyDomb ] Bonjour, J'ai un petit problème, je vais commencer pas vous mettre dans le contexte, toujours plus facile à comprendre par la suite. Je recois plusi Syntaxe incorrecte ? [ par begueradj ] Azul à tous, J'ai opéré une requête sous PHP/MySQL, aucune erreur ne m'est signalée, par contre je n'ai aucun résultat lors de l'affichage de mes don Requête invalide :( [ par begueradj ] Veuillez me dire pourquoi cette requête refuse de s'exécuter (une erreur m'est signalée là dessus sous PHP/MySQL) au niveau de ORDER BY: [code=php] $q Création d'une base de données [ par artificier15 ] bonjour Je souhaiterais créer une base de données suite à une collecte d'informations a partir d'un TEXTAERA. Ces informations sont: Points total Somme Requete sous Oracle [ par metalcoder ] Bonjour, J'ai deux requêtes complétement différentes qui me ramène une quantité l'une pour une qté de pièces expédiée l'autre pour une qté de pièces Connexion sal serveur 2000 [ par vbto ] salut, j'ai une application qui utilise Sql serveur 2000 comme sgbd, je me connecte en local sans probllème quand l'application essaie de se connecter


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,382 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales