IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Afficher une ligne null ou vide dans un champ


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Points : 16
    Points
    16
    Par défaut Afficher une ligne null ou vide dans un champ
    Bonjour, je réalise une requete pour exporter des lignes d'une base de donnée (select..... from.....where) que du simple, le souci est : lorsque j'exécute ma requete il y a des lignes qui ne s'exportent pas, car elles sont vides ou null. En plus c'est un champ qui concerne une somme (ligne ne rouge).
    Voir requete si dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    SELECT DISTINCT 
    c.cpt_bnstr, 
    a.cd_art, 
    a.des_art_a, 
    j.px_vte_unia_tf_lig,
    (j.px_vte_unia_tf_lig*d.qte),
    c.no_int_ord_fab, 
    d.qte, 
    c.qte_recu, 
    Sum(g.qte_mvt) AS 'Somme sur qte_mvt',
    dateformat(c.dt_hre_recep,'DD/MM/YY'), 
    dateformat(d.dte_hre_fin_prev,'DD/MM/YY')
     
    FROM 
    obi.art a, 
    obi.fo_bnstr b, 
    obi.fo_bnstr_lig c, 
    obi.ordfab d, 
    obi.proc_art e, 
    obi.cl f, 
    obi.art_mvtreel g,
    obi.fo_br_lig h, 
    obi.fo_pxach i, 
    obi.tf_dte_lig j
    WHERE 
    b.cpt_bnstr = c.cpt_bnstr 
    AND d.no_int_ord_fab = c.no_int_ord_fab 
    AND e.cd_proc = d.cd_proc 
    AND e.no_int_art = a.no_int_art 
    AND a.cd_cl = f.cd_cl 
    AND a.cd_art = h.cd_art
    AND h.no_int_art_fo = i.no_int_art_fo 
    AND i.no_int_tf = j.no_int_tf
    AND g.no_int_ord_fab = d.no_int_ord_fab 
    AND ((b.cd_fo='10718') AND (d.cd_etat_ordfab Between '0' And '1') 
    AND (i.cd_fo ='10718')
    AND (g.qte_mvt<0))
    GROUP BY c.cpt_bnstr, a.cd_art, a.des_art_a, c.no_int_ord_fab, d.qte, c.qte_recu, dateformat(c.dt_hre_recep,'DD/MM/YY'), dateformat(d.dte_hre_fin_prev,'DD/MM/YY'),j.px_vte_unia_tf_lig
    ORDER BY dateformat(c.dt_hre_recep,'DD/MM/YY')
    Merci d'avance a vous tous, c'est un peu urgent

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    Probablement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    SELECT DISTINCT
    c.cpt_bnstr,
    a.cd_art,
    a.des_art_a,
    j.px_vte_unia_tf_lig,
    (j.px_vte_unia_tf_lig * d.qte) AS Total,
    c.no_int_ord_fab,
    d.qte,
    c.qte_recu,
    COALESCE(Sum(g.qte_mvt), 0) AS Somme sur qte_mvt,
    dateformat(c.dt_hre_recep,'DD/MM/YY'),
    dateformat(d.dte_hre_fin_prev,'DD/MM/YY')
     
    FROM obi.art a
         INNER JOIN obi.proc_art e
               ON e.no_int_art = a.no_int_art
         INNER JOIN obi.cl f
               ON a.cd_cl = f.cd_cl
         INNER JOIN obi.fo_br_lig h
               ON a.cd_art = h.cd_art
         INNER JOIN obi.fo_pxach i
               ON h.no_int_art_fo = i.no_int_art_fo
         INNER JOIN obi.tf_dte_lig j
               ON i.no_int_tf = j.no_int_tf
         INNER JOIN obi.ordfab d
               ON e.cd_proc = d.cd_proc
         LEFT OUTER JOIN obi.art_mvtreel g
               ON g.no_int_ord_fab = d.no_int_ord_fab
         INNER JOIN obi.fo_bnstr_lig c
               ON d.no_int_ord_fab = c.no_int_ord_fab
         INNER JOIN obi.fo_bnstr b
               ON b.cpt_bnstr = c.cpt_bnstr
     
    WHERE
    AND b.cd_fo='10718'
    AND d.cd_etat_ordfab Between '0' And '1'
    AND i.cd_fo ='10718'
    AND g.qte_mvt<0
     
    GROUP BY c.cpt_bnstr, a.cd_art, a.des_art_a, c.no_int_ord_fab, d.qte, c.qte_recu, dateformat(c.dt_hre_recep,'DD/MM/YY'), dateformat(d.dte_hre_fin_prev,'DD/MM/YY'),j.px_vte_unia_tf_lig
     
    ORDER BY dateformat(c.dt_hre_recep,'DD/MM/YY')
    Apprenez à faire des jointures et pas du bouliboulga dans la clause WHERE...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Points : 16
    Points
    16
    Par défaut
    Merci mais,ca ne marche pas, il me fait bien la somme des doublons mais ne m'affiche pas les lignes qui sont a 0.
    désolé pour le bouliboulga , je débute dans SQL et j'adore bricolé dans interactive sql
    A+

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    Le principe est de faire une jointure externe quelque part. Sans exemples de données des tables difficile de t'en dire plus...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Points : 16
    Points
    16
    Par défaut
    Merci, j'ai reussi a me dépatouiller avec ta requete, mais maintenant que j'arrive a afficher mes lignes vides ou =0
    j'aimerais additionner la derniere colonne car il y a des doublons.

    ex: [CODE]N° Articles désignation prix total OF Qté recu delai M delai S Qté mat.
    12977 '769652' 'SERRE-CABLE' 2.5 2500 14663 1000 0 '28/02/08' '26/03/08' -31.85
    12979 '738282' 'FACE AVANT ' 9.22 737.6 14604 80 0 '28/02/08' '28/03/08' -21
    12979 '738282' 'FACE AVANT ' 9.22 737.6 14604 80 0 '28/02/08' '28/03/08' 0

    12980 '737377' 'FACE ARRIERE' 13.22 1057.6 14611 80 0 '28/02/08' '25/03/08' 0
    12980 '737377' 'FACE ARRIERE' 13.22 1057.6 14611 80 0 '28/02/08' '25/03/08' -21

    13083 '2023216' 'DOUILLE 664 ' 3.07 982.4 14839 320 0 '28/02/08' '28/03/08' 0
    13083 '2023216' 'DOUILLE 664 ' 3.07 982.4 14839 320 0 '28/02/08' '28/03/08' -18


    Merci d'avance
    A+

  6. #6
    Membre actif
    Inscrit en
    Avril 2005
    Messages
    644
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 644
    Points : 254
    Points
    254
    Par défaut
    avec "group by" tu peux peut etre t'en sortir...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 39
    Points : 16
    Points
    16
    Par défaut
    OK MERCI !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Comment afficher une ligne d'un tableau dans un formulaire en la selectionnant
    Par eddycool dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/05/2009, 15h49
  2. Réponses: 6
    Dernier message: 13/05/2009, 15h26
  3. afficher une ligne d'un datagridview dans un textbox
    Par Tartuffe245 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 23/04/2008, 11h29
  4. Réponses: 3
    Dernier message: 11/05/2006, 00h27
  5. Réponses: 9
    Dernier message: 04/12/2005, 18h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo