DEUX REQUETES SELECT

Résolu
Bonjour tout le monde; mon problème est le suivant:
j'ai une requête qui retourne un certain nombre de champs, il existe deux colonnes Totals_DebitAmount et Totals_DebitAmount qui retournent des valeurs , ce que je veux c'est exclure les résultats quand le type de journal égal à 3 et les mettre dans deux autres colonnes sur le même résultat. Merci de m'aider c'est urgent :

SELECT [T0].[GeneralAccountNumber], [T0].[Credit], [T0].[Debit], [T1].[JournalCode], [T1].[DisplayPeriod], [T2].[StartingDate], [T2].[EndingDate], [T4].[FullName], [T4].[AccountNumber],
[T1].[Totals_DebitAmount],[T1].[Totals_CreditAmount]
FROM (((([EntryLine] T0
LEFT OUTER JOIN [JournalTotals] T1 ON (([T0].[JournalTotalsNumber] = [T1].[NumberId])))
LEFT OUTER JOIN [AccountingYear] T2 ON (([T1].[AccountingYearID] = [T2].[ID])))
LEFT OUTER JOIN [Journal] T3 ON (([T1].[JournalCode] = [T3].[Code])))
LEFT OUTER JOIN [Account] T4 ON (([T3].[BalanceAccount] = [T4].[AccountNumber])))

1 réponse

  1. Bonjour,

    Est-ce que ceci te convient ? (En appelant [type] la colonne qui contient le type...)
    SELECT [T0].[GeneralAccountNumber], [T0].[Credit], [T0].[Debit], [T1].[JournalCode], [T1].[DisplayPeriod], [T2].[StartingDate], [T2].[EndingDate], [T4].[FullName], [T4].[AccountNumber],
    CASE [type] WHEN 3 THEN 0 ELSE [T1].[Totals_DebitAmount] END as [Totals_DebitAmount],
    CASE [type] WHEN 3 THEN 0 ELSE [T1].[Totals_CreditAmount] END as [Totals_CreditAmount],
    CASE [type] WHEN 3 THEN [T1].[Totals_DebitAmount] ELSE 0 END as [Totals_DebitAmount_TYPE3],
    CASE [type] WHEN 3 THEN [T1].[Totals_CreditAmount] ELSE 0 END as [Totals_CreditAmount_TYPE3]
    FROM (((([EntryLine] T0
    LEFT OUTER JOIN [JournalTotals] T1 ON (([T0].[JournalTotalsNumber] = [T1].[NumberId])))
    LEFT OUTER JOIN [AccountingYear] T2 ON (([T1].[AccountingYearID] = [T2].[ID])))
    LEFT OUTER JOIN [Journal] T3 ON (([T1].[JournalCode] = [T3].[Code])))
    LEFT OUTER JOIN [Account] T4 ON (([T3].[BalanceAccount] = [T4].[AccountNumber])))

    Xavier
    1. Rebonjour,
      je viens de tester la requête mais elle en retourne toujours pas les bonnes valeurs,et elle retourne plusieurs lignes pour le même compte même quand j'utilise GROUP BY
    2. J'ai modifie juste la colonne type et ça a fonctionné, maintenant reste le problème de l'affichage par compte ,
      je veux cumuler les montants par code du compte , pourriez-vous m'aider SVP?
    3. Quelqu'un a une solution?
    4. SELECT
      [T0].[AccountNumber] AS [Code du compte], [T1].[FullName] AS [libellé du compte] ,
      sum( [T0].[Totals_DebitAmount]) AS [Total Mouvements Débits de l’année] ,
      sum( [T0].[Totals_CreditAmount])AS [Total Mouvements Crédits de l’année],
      (CASE
      WHEN Totals_SoldAmount > 0 THEN sum( Totals_SoldAmount)
      END) AS [Solde débiteur],
      (CASE
      WHEN Totals_SoldAmount < 0 THEN sum(-Totals_SoldAmount)
      END) AS [Solde Créditeur]
      FROM (([AccountTotals] T0
      LEFT OUTER JOIN [Account] T1 ON (([T0].[AccountNumber] = [T1].[AccountNumber])))
      LEFT OUTER JOIN [AccountingYear] T2 ON (([T0].[AccountingYearID] = [T2].[ID])))

      GROUP BY

      [T0].[AccountNumber] , [T1].[FullName], [T0].[Totals_DebitAmount],[T0].[Totals_CreditAmount],Totals_SoldAmount,[T1].[AccountNumber]