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

Développement SQL Server Discussion :

affichage de deux requettes sur le meme tableau


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Par défaut affichage de deux requettes sur le meme tableau
    bonjour à tous .

    j'aimerais bien faire un reporting sur mon activité commercial j'ai donc creé deux requettes une sur les commande client et une sur la facturation

    voici celle des commandes (elle fonctionne bien ).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select  T1.docdate, sum(T1.GrosProfit)AS [montant commandé]
    from ORDR
    Group by  T1.Docdate
    voici celle des factures (elle fonctionne bien aussi )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select T2.Docdate , sum(T2.GrosProfit)AS [montant facturé] 
    From OINV T2 
    Group BY T2.DocDate
    mon besion serais d'avoir l'affichage sur un seul tableau j'ai donc tester differente solution mai j'avoue que je n'y arrive pas et cherche sur le net des solution mais soit je n'arrive pas a mon resulta soit cela ne fonctionne pas
    je pense me rapprocher du but avec un jionture "FULL" mais le problem est que mais totaux ne sont plus bon du tous les fonction sum me donne n'importe quoi comme resulta .

    voici la requete avec la jointure FULL (c'est la seul qui me permet d'avoir l'affichage des date des commandes et des dates de factures car il y à des jours ou l'on passe des commandes et ou l'on ne facture pas et parfois l'inverse.)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select  T1.docdate AS [date de commande], T2.docdate AS [date de facture],
    isnull (sum(T1.GrosProfit),0) AS [montant commandé],
    isnull (sum(T2.GrosProfit),0) AS [montant facturé] 
    from ORDR T1 full join OINV T2 on T1.docdate = t2.docdate
    Group by  T1.Docdate, T2.docdate
    Order By T1.Docdate
    merci de votre aide

  2. #2
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Par défaut autre test
    j'ai tester cela aussi mais pareil cela ne m'apporte pas le resulta attendu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    select T.Docdate , T.Grosprofit1, T.Grosprofit2 from 
    	  (select  
    T1.Docdate AS [docdate] ,
          sum(T1.Grosprofit) AS [GrosProfit1]
    	  from ORDR T1
    	  Group by T1.docdate
    union   
    	  select T2.Docdate AS [Docdate],
                 sum(T2.GrosProfit) AS [Grosprofit2]
    	  from OINV T2
          Group by T2.Docdate)T
    Order By T.docdate
    il me dis que T.GrosProfit2 est invalide

    encore merci

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Avez-vous essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT [docdate], SUM(Grosprofit)
    FROM
    (
    		SELECT T1.Docdate AS [docdate],
    		T1.Grosprofit AS [GrosProfit1]
    		FROM dbo.ORDR T1
    	UNION
    		  SELECT T2.Docdate AS [Docdate],
    				 T2.GrosProfit AS [Grosprofit2]
    		  FROM OINV T2
    ) BRUT
    GROUP BY [docdate]
    ORDER BY [docdate]
    Attention à l'union parce implicitement il effectue le DISTINCT.
    Si vous voulez l'effet inverse écrivez UNION ALL.

    @++

  4. #4
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Par défaut toujours pas
    merci de votre reponse mais cela ne fonctionen pas car ce que je veux c'est les resulta des deux premier requete sur le meme tableau

    la premiere requete me donne

    la dates des commande ainsi que le totale de chaque jour (tout commade confondu

    la deuxieme requette me donne la date des factures (qui n'est pas forcément la meme que les commandes )
    et le total des factures

    j'aimerais avoir le resulta sur une seul tableau avec ta solution comme la mienne il est impossible de faire le distingo entre le montant des facture et celui des commandes .

    merci quand meme

  5. #5
    Membre chevronné Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Par défaut et comme ça ?
    Bonsoir,

    Et en essayant ceci, ça fonctionne ?

    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
    declare @ORDR table (docdate DATETIME, GrosProfit MONEY) 
    INSERT INTO @ORDR select '10/02/2009', 1
    INSERT INTO @ORDR select '10/02/2009', 1
    INSERT INTO @ORDR select '10/02/2009', 10
    INSERT INTO @ORDR select '11/02/2009', 2
    INSERT INTO @ORDR select '12/02/2009', 50
    INSERT INTO @ORDR select '14/02/2009', 100
     
    declare @OINV table (docdate DATETIME, GrosProfit MONEY) 
    INSERT INTO @OINV select '10/02/2009', 2
    INSERT INTO @OINV select '11/02/2009', 10
    INSERT INTO @OINV select '12/02/2009', 50
    INSERT INTO @OINV select '15/02/2009', 100
     
    select A.docdate, 
    (select SUM(T1.GrosProfit)    
    FROM @ORDR T1 WHERE T1.docdate = A.docdate) [montant commandé],
    (select SUM(T2.GrosProfit)  
    FROM @OINV T2 WHERE T2.docdate = A.docdate) AS [montant facturé]
    FROM
    (
    select distinct 
    ST1.docdate FROM @ORDR ST1
    union 
    select distinct 
    ST2.docdate FROM @OINV ST2
    ) A

  6. #6
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 27
    Par défaut merci
    bonjour excusez moi je debutete la je ne comprends pas le message de SQL server
    il me retourne cela quand je traite avec votre requette

    (1 row(s) affected)

    (1 row(s) affected)

    (1 row(s) affected)

    (1 row(s) affected)

    (1 row(s) affected)
    Msg 242, Level 16, State 3, Line 7
    The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
    The statement has been terminated.

    (1 row(s) affected)

    (1 row(s) affected)

    (1 row(s) affected)
    Msg 242, Level 16, State 3, Line 13
    The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
    The statement has been terminated.

    (3 row(s) affected)
    merci beaucoup .

Discussions similaires

  1. Réponses: 10
    Dernier message: 30/11/2006, 19h47
  2. Positionner deux span sur la meme ligne
    Par ChtiGeeX dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 17/10/2006, 16h12
  3. deux databases sur le meme serveur
    Par diazpi dans le forum Oracle
    Réponses: 4
    Dernier message: 11/07/2006, 23h07
  4. [Apache] Deux alias sur un meme dossier
    Par mecha dans le forum Apache
    Réponses: 1
    Dernier message: 05/05/2006, 18h05
  5. impossible d'ouvrir deux recordset sur la meme connection ?
    Par requiemforadream dans le forum ASP
    Réponses: 3
    Dernier message: 28/04/2005, 09h31

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