Une seule colonne en fonction de plusieurs lignes [Résolu] - SQL Server

A voir également:Une seule colonne en fonction de plusieurs lignesMEFC d'une colone en fonction des valeur de chaque ligne ✓ - Forum - Excel Transposer plusieurs lignes en une seule colonne ✓ - Forum - VB / VBA Concaténer des lignes en une seule colonnes ✓ - Forum - Excel [VBA] - Remplir colonne en fonction des ligne ✓ - Forum - VB / VBA Trouver en-tête colonne en fonction ligne + colonne spécifique ✓ - Forum - Excel

Bonjour,

Pour le traitement de la paie, je suis entrain de préparer une requête (voir requête), mais la problématique est comme suit: j'ai un ensemble d'information à extraire en colonnes en fonction des salariés, la majorité des colonnes à extraire sont des cumuls ( valeurs numériques) qui sont stockées dans une colonne (DecimalValue) de la table 'PaycheckValue', par exemple: le salaire annuel est dans le cumul : 'Salaire_base_ir#' dans la table cumul mais auquel je dois associer la bonne valeur dans la DecimalValue.

SELECT  [T0].[IdPaycheck], [T0].[DecimalValue] AS SALAIREANNUEL,[T0].[DecimalValue] AS BRUT, [T1].[Id], [T1].[IdCatalogueCumul], [T1].[IdEmployee], [T2].[Id] AS [Id1] , [T3].[IdCatalogue], [T3].[UCode], [T3].[IdElement], [T4].[OLCode], [T4].[Description], [T4].[Id] AS [Id2] , [T5].[Address_Address1], [T5].[RegistrationNumber], [T5].[xx_No_C_I_N], [T5].[xx_No_CNSS], [T5].[BirthName], [T5].[Contact_FirstName] FROM ((((([PaycheckValue] T0   LEFT OUTER JOIN [Paycheck] T1  ON (([T0].[IdPaycheck] = [T1].[Id])))  LEFT OUTER JOIN [CatalogueCumul] T2  ON (([T1].[IdCatalogueCumul] = [T2].[Id])))  LEFT OUTER JOIN [CatalogueLineCumul] T3  ON (([T2].[Id] = [T3].[IdCatalogue])))  LEFT OUTER JOIN [Cumul] T4  ON (([T3].[IdElement] = [T4].[Id])))  LEFT OUTER JOIN [Employee] T5  ON (([T1].[UCodeEmployee] = [T5].[UCode]))) WHERE  ((([T5].[VersionStatus] = 1) OR ([T5].[VersionStatus]  IS NULL)))


J'ai vraiment besoin d'aide

Cordialement

Forum

A voir également:Une seule colonne en fonction de plusieurs lignesMEFC d'une colone en fonction des valeur de chaque ligne ✓ - Forum - Excel Transposer plusieurs lignes en une seule colonne ✓ - Forum - VB / VBA Concaténer des lignes en une seule colonnes ✓ - Forum - Excel [VBA] - Remplir colonne en fonction des ligne ✓ - Forum - VB / VBA Trouver en-tête colonne en fonction ligne + colonne spécifique ✓ - Forum - Excel

Web: www.shapebootstrap.net

3 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

bonjour, à part la requête SQL, rien n'est clair.
par exemple, je ne comprends pas du tout la phrase suivante:
la majorité des colonnes à extraire sont des cumuls ( valeurs numériques) qui sont stockées dans une colonne (DecimalValue)
comment des colonnes peuvent-elles être stockées dans une colonne?
peux-tu écrire cela autrement, ou donner des exemples?

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

En fait le but c'est d'avoir une liste de salariés en ligne et leurs informations en colonnes. Les cumuls dont je parle peuvent être: ( 'salaire annuel', 'montant brut annuel' ...) les codes de ces cumuls sont dans la colonne 'OLCode' de la table Cumul et leurs valeurs sont dans la colonne DecimalValue de la table PaychekValue, Donc il s'agit de récupérer avec la même colonne plusieurs colonnes en utilisant des ALIAS et cela en fonction du cumul par exemple on va prendre la DecimalValue AS Salaire quand le code cumul = 'salaire' ainsi de suite.... J'espère que j'étais un peu plus claire

Reply
réponses:
  • auteur

  • auteur

    donc ta requête te donne exactement ce que tu veux (le bon nombre de lignes), à part que la colonne SALAIREANNUEL devrait être en fait plusieurs colonnes, correspondant à tous les valeurs possibles de OLCode? sur chaque ligne, une seule de ces colonnes serait remplie, les autres étant vides?
    si ce n'est pas cela, donne un exemple.

    connais-tu les valeurs possibles de OLCode?

  • auteur

    peut-être ainsi:

    SELECT  [T0].[IdPaycheck],   [T5].[Address_Address1], [T5].[RegistrationNumber], [T5].[xx_No_C_I_N], [T5].[xx_No_CNSS], [T5].[BirthName], [T5].[Contact_FirstName],  sum(case when [T4].[OLCode]= 'salaire annuel' then [T0].[DecimalValue] else 0 end) as SALAIREANNUEL, sum(case when [T4].[OLCode]= 'montant brut annuel' then [T0].[DecimalValue] else 0 end) as BRUT FROM ((((([PaycheckValue] T0  LEFT OUTER JOIN [Paycheck] T1  ON (([T0].[IdPaycheck] = [T1].[Id])))  LEFT OUTER JOIN [CatalogueCumul] T2  ON (([T1].[IdCatalogueCumul] = [T2].[Id])))  LEFT OUTER JOIN [CatalogueLineCumul] T3  ON (([T2].[Id] = [T3].[IdCatalogue])))  LEFT OUTER JOIN [Cumul] T4  ON (([T3].[IdElement] = [T4].[Id])))  LEFT OUTER JOIN [Employee] T5  ON (([T1].[UCodeEmployee] = [T5].[UCode]))) WHERE  ((([T5].[VersionStatus] = 1) OR ([T5].[VersionStatus]  IS NULL))) group by [T0].[IdPaycheck], [T5].[Address_Address1], [T5].[RegistrationNumber], [T5].[xx_No_C_I_N], [T5].[xx_No_CNSS], [T5].[BirthName], [T5].[Contact_FirstName]

  • auteur

    as-tu essayé la suggestion en #4?

  • auteur

    OUI mais ça donne pas les bonnes valeurs

  • auteur

    "pas les bonnes valeurs", peux-tu être plus précis?

  • auteur

    Elle me retourne la meme valeur sur toutes les colonnes, voilà la requete actuelle:


    SELECT [T0].[IdPaycheck],[T5].RegistrationNumber AS Matricule,[T5].EmployeeLastName AS Nom, [T5].Contact_FirstName AS Prénom, [T5].Address_Address1 AS Adresse, [T5].xx_No_C_I_N AS [N° CIN],[T5].NumberOfResidencePermit AS [Carte Séjour], [T5].[xx_No_CNSS] AS [N° CNSS] , [T5].[xx_Situation_Famille] AS [Situation Familiale],
    /*[T5].[xx_Taux_Frais_Professionnels],
    [T5].[xx_Nombre_de_Personnes_a_Charge],
    [T5].[xx_Date_Autorisation_de_Construire],
    [T5].[xx_Date_Permis_d_Habiter],
    • /(sum(case when [T4].[OLCode]= N'SALAIRE_BASE_IR#' then [T0].[DecimalValue] else 0 end)) as [Salaire de Base Annuel],(sum(case when [T4].[OLCode]= N'ABTASS_SS' then [T0].[DecimalValue] else 0 end)) as [Montant Brut],(sum(case when [T4].[OLCode]= N'AVANTAGE_EN_NATURE_IR#' then [T0].[DecimalValue] else 0 end)) as [Montant des Avantages],(sum(case when [T4].[OLCode]= N'INDEMNITES_EXONEREES_IR#' then [T0].[DecimalValue] else 0 end)) as [Montant des éléments Exonérés],(sum(case when [T4].[OLCode]= N'Montant du revenu brut imposable#' then [T0].[DecimalValue] else 0 end)) as [Montant du revenu brut imposable],(sum(case when [T4].[OLCode]= N'FRAIS_PROFESSIONNELS_IR#' then [T0].[DecimalValue] else 0 end)) as [Montant des frais professionnels],(sum(case when [T4].[OLCode]= N'MONTANT_SAL_RETRAITE_COMPLEMENT#' then [T0].[DecimalValue] else 0 end)) as [Montant des cotisations d'assurance retraites],(sum(case when [T4].[OLCode]= N'CUMUL_ECHEANCE_LOGEMENT_IR#' then [T0].[DecimalValue] else 0 end)) as [Montant des échéances prélevées],(sum(case when [T4].[OLCode]= N'RETENUES_SOCIALES_CNSS_IPE_AMO#' then [T0].[DecimalValue] else 0 end)) as [Montants des Autres Retenues],(sum(case when [T4].[OLCode]= N'SALAIRE_BRUT_IMPOSBLE#' then [T0].[DecimalValue] else 0 end)) as [Montant du revenu net imposable],(sum(case when [T4].[OLCode]= N'IRMOI#' then [T0].[DecimalValue] else 0 end)) as [I.R. Prélevé]FROM ((((([PaycheckValue] T0 LEFT OUTER JOIN [Paycheck] T1 ON (([T0].[IdPaycheck] = [T1].[Id]))) LEFT OUTER JOIN [CatalogueCumul] T2 ON (([T1].[IdCatalogueCumul] = [T2].[Id]))) LEFT OUTER JOIN [CatalogueLineCumul] T3 ON (([T2].[Id] = [T3].[IdCatalogue]))) LEFT OUTER JOIN [Cumul] T4 ON (([T3].[IdElement] = [T4].[Id]))) LEFT OUTER JOIN [Employee] T5 ON (([T1].[UCodeEmployee] = [T5].[UCode])))WHERE ((([T5].[VersionStatus] = 1) OR ([T5].[VersionStatus] IS NULL))) AND (YEAR([T1].PeriodPaye) = 2019) AND (MONTH([T1].PeriodPaye) = 1)group by/*[T0].[IdPaycheck], [T5].[Address_Address1], [T5].[RegistrationNumber], [T5].[xx_No_C_I_N], [T5].[xx_No_CNSS], [T5].EmployeeLastName, [T5].[Contact_FirstName]*/[T0].[IdPaycheck],[T5].RegistrationNumber ,[T5].EmployeeLastName , [T5].Contact_FirstName , [T5].Address_Address1 , [T5].xx_No_C_I_N ,[T5].NumberOfResidencePermit , [T5].[xx_No_CNSS] , [T5].[xx_Situation_Famille]


Le résultat est dans la pièce jointe

  • auteur

    pour comprendre tes données, que donne ceci?

    SELECT  [T0].[IdPaycheck],   [T4].[OLCode],  [T0].[DecimalValue]  FROM ((((([PaycheckValue] T0  LEFT OUTER JOIN [Paycheck] T1  ON (([T0].[IdPaycheck] = [T1].[Id])))  LEFT OUTER JOIN [CatalogueCumul] T2  ON (([T1].[IdCatalogueCumul] = [T2].[Id])))  LEFT OUTER JOIN [CatalogueLineCumul] T3  ON (([T2].[Id] = [T3].[IdCatalogue])))  LEFT OUTER JOIN [Cumul] T4  ON (([T3].[IdElement] = [T4].[Id])))  LEFT OUTER JOIN [Employee] T5  ON (([T1].[UCodeEmployee] = [T5].[UCode]))) WHERE  ((([T5].[VersionStatus] = 1) OR ([T5].[VersionStatus]  IS NULL))) order by [T0].[IdPaycheck],   [T4].[OLCode]

  • auteur

    D'accord, ça donne ça :

  • auteur

    tu écris "j'ai pu réaliser ma requête sauf qu'elle me retourne plusieurs lignes par salarié".
    les données sont-elles identiques sur ces différentes lignes?
    les cumuls sont-ils corrects?

    en principe, il faut retrouver dans le group by tous les éléments sélectionnés, sauf ceux sur lesquels tu fais une fonction telle que "sum".

  • auteur

    Mes cumuls sont corrects, normalement j'ai précisé la condition pour un seul salarié dont le Matricule est : 0003 alors que j'obtiens mes résultats sur plusieurs lignes, par exemple la première ligne contient la valeur du salaire dans DecimalValue mais pour les autres colonnes retoure un zéro, sur la deuxième ligne j'ai la valeur du brut dans DecimalValue et les autres colonnes 0 ainsi de suite.... et effectivement j'ai pas mentionné les decimalvalue dans le group by...merci beaucoup d'avance

  • auteur

    à part les données cumulées (avec sum), toutes les autres colonnes son-elles identiques?
    je suspecte qu'il manque des éléments dans le "group by": as-tu vérifié que tout y est, sauf ceux avec sum?
    exemple:

    (case when PaycheckLine.OLCodeItem='G_N_J_T_M#' then PaycheckLine.EmployeeBasis else 0 end)

  • auteur

    Ci-joint un aperçu des résultats, j'ai vérifié le group by tout y est sauf les éléments avec sum, la requête

    retourne beaucoup de lignes et quand je cherche par exemple dans la colonne Salaire je trouve la bonne valeur sauf qu'il y a d'autres valeurs non nulles et aussi des 0, si je pourrai afficher mes résultats dans une seule ligne je pourrai confirmer mes valeurs en les comparants avec les données que j'ai pour ce salarié par exemple mais je n'y arrive pas

  • auteur

    vois-tu ceci dans le group by?

    (case when PaycheckLine.OLCodeItem='G_N_J_T_M#' then PaycheckLine.EmployeeBasis else 0 end)

  • auteur

    En modifiant ma requete comme ceci:


    SELECT
    YEAR(Paycheck.PeriodPaye) AS Exercice,
    MONTH(Paycheck.PeriodPaye) AS Mois,
    Employee.RegistrationNumber AS Matricule,
    Employee.EmployeeLastName AS Nom,
    Employee.Contact_FirstName AS Prénom,
    Employee.Address_Address1 AS Adresse,
    Employee.xx_No_C_I_N AS [N° CIN],
    Employee.NumberOfResidencePermit AS [Carte Séjour],
    Employee.xx_No_CNSS AS [N° CNSS],
    Employee.xx_Situation_Famille AS [Situation Familiale],
    Employee.xx_Taux_Frais_Professionnels AS [Taux des frais professionnels],
    Employee.xx_Nombre_de_Personnes_a_Charge AS [Nbre de personens à charge],
    Employee.xx_Date_Autorisation_de_Construire AS [Date d'autorisation de construire],
    Employee.xx_Date_Permis_d_Habiter AS [Date permis d'habiter],
    PaycheckLine.EmployeeBasis AS [Nbre de Jours],
    (CASE
    WHEN PaycheckLine.OLCodeItem = 'G_N_J_T_M#' THEN PaycheckLine.EmployeeBasis
    ELSE 0
    END) AS NombreJours,
    SUM(CASE
    WHEN Cumul.OLCODE = 'SALAIRE_BASE_IR#' THEN PaycheckValue.DecimalValue
    ELSE 0
    END) AS SALAIREANNUEL,
    SUM(CASE
    WHEN Cumul.OLCODE = 'ABTASS_SS' THEN PaycheckValue.DecimalValue
    ELSE 0
    END) AS BRUT,
    SUM(CASE
    WHEN Cumul.OLCODE = 'AVANTAGE_EN_NATURE_IR#' THEN PaycheckValue.DecimalValue
    ELSE 0
    END) AS [Montant des avantages en argent ou en nature],
    SUM(CASE
    WHEN Cumul.OLCODE = 'INDEMNITES_EXONEREES_IR#' THEN PaycheckValue.DecimalValue
    ELSE 0
    END) AS [Montant des éléments exonérés],
    SUM(CASE
    WHEN Cumul.OLCODE = 'Montant du revenu brut imposable#' THEN PaycheckValue.DecimalValue
    ELSE 0
    END) AS [Montant du revenu brut imposable],
    SUM(CASE
    WHEN Cumul.OLCODE = 'FRAIS_PROFESSIONNELS_IR#' THEN PaycheckValue.DecimalValue
    ELSE 0
    END) AS [Montant des frais professionnels],
    SUM(CASE
    WHEN Cumul.OLCODE = 'MONTANT_SAL_RETRAITE_COMPLEMENT#' THEN PaycheckValue.DecimalValue
    ELSE 0
    END) AS [Montant des cotisations d'assurance retraites],
    SUM(CASE
    WHEN Cumul.OLCODE = 'CUMUL_ECHEANCE_LOGEMENT_IR#' THEN PaycheckValue.DecimalValue
    ELSE 0
    END) AS [Montant des échéances prélevées],
    SUM(CASE
    WHEN Cumul.OLCODE = 'RETENUES_SOCIALES_CNSS_IPE_AMO#' THEN PaycheckValue.DecimalValue
    ELSE 0
    END) AS [Montants des autres retenues],
    SUM(CASE
    WHEN Cumul.OLCODE = 'SALAIRE_BRUT_IMPOSBLE#' THEN PaycheckValue.DecimalValue
    ELSE 0
    END) AS [Montant du revenu net imposable],
    SUM(CASE
    WHEN Cumul.OLCODE = 'IRMOI#' THEN PaycheckValue.DecimalValue
    ELSE 0
    END) AS [I.R. Prélevé]


    FROM (((((PaycheckValue
    LEFT OUTER JOIN Paycheck
    ON ((PaycheckValue.IdPaycheck = Paycheck.Id))
    LEFT OUTER JOIN PaycheckLine
    ON Paycheck.Id = PaycheckLine.PaycheckId
    LEFT OUTER JOIN CatalogueCumul
    ON ((Paycheck.IdCatalogueCumul = CatalogueCumul.Id)))
    LEFT OUTER JOIN CatalogueLineCumul
    ON ((CatalogueCumul.Id = CatalogueLineCumul.[IdCatalogue])))
    LEFT OUTER JOIN Cumul
    ON ((CatalogueLineCumul.[IdElement] = Cumul.Id)))
    LEFT OUTER JOIN Employee
    ON ((Paycheck.[UCodeEmployee] = Employee.UCode))))

    WHERE (((Employee.[VersionStatus] = 1)
    OR (Employee.[VersionStatus] IS NULL)))
    AND (YEAR(Paycheck.PeriodPaye) = 2019)
    AND (MONTH(Paycheck.PeriodPaye) = 1)
    AND Cumul.UCode = PaycheckValue.UCode
    AND Employee.[RegistrationNumber] = '0003'



    GROUP BY PaycheckValue.IdPaycheck,
    Employee.RegistrationNumber,
    Employee.EmployeeLastName,
    Employee.Contact_FirstName,
    Employee.Address_Address1,
    Employee.xx_No_C_I_N,
    Employee.NumberOfResidencePermit,
    Employee.xx_No_CNSS,
    Employee.xx_Situation_Famille,
    Employee.xx_Taux_Frais_Professionnels,
    Employee.xx_Nombre_de_Personnes_a_Charge,
    Employee.xx_Date_Autorisation_de_Construire,
    Employee.xx_Date_Permis_d_Habiter,
    /*PaycheckValue.UCode,*/
    Paycheck.PeriodPaye,
    PaycheckLine.EmployeeBasis,
    PaycheckLine.OLCodeItem<code sql>


    Le résultat est bon sauf pour le nombre de jour , et j'ai plusieurs liges qui se répétent:

  • auteur

    que se passe-t'il avec le nombre de jours?
    comment veux-tu avoir une ligne par employé, et en même temps afficher plusieurs valeurs de PaycheckLine.EmployeeBasis et de PaycheckLine.OLCodeItem, donc plusieurs lignes?

  • auteur

    Le nombre de jour j'avais que des 0 partout et deux lignes par salariés maintenant c réglé merciiii beaucoupp pour votre échange,

  • auteur

    super! peux-tu alors marquer le sujet comme résolu, via la roue dentée à droite du titre?

  • auteur

    Bien sur ;)

  • auteur

    j'ai fait un test pour un seul salarié avec la requête suivante :


    SELECT [T5].[RegistrationNumber], [T4].[OLCode], [T0].[DecimalValue]
    FROM ((((([PaycheckValue] T0
    LEFT OUTER JOIN [Paycheck] T1 ON (([T0].[IdPaycheck] = [T1].[Id])))
    LEFT OUTER JOIN [CatalogueCumul] T2 ON (([T1].[IdCatalogueCumul] = [T2].[Id])))
    LEFT OUTER JOIN [CatalogueLineCumul] T3 ON (([T2].[Id] = [T3].[IdCatalogue])))
    LEFT OUTER JOIN [Cumul] T4 ON (([T3].[IdElement] = [T4].[Id])))
    LEFT OUTER JOIN [Employee] T5 ON (([T1].[UCodeEmployee] = [T5].[UCode])))
    WHERE ((([T5].[VersionStatus] = 1) OR ([T5].[VersionStatus] IS NULL))) AND [T4].[OLCode]=N'SALAIRE_BASE_IR#' AND [T5].[RegistrationNumber]='0003'
    AND (YEAR([T1].PeriodPaye) = 2019)
    AND (MONTH([T1].PeriodPaye) = 1) AND [T4].[UCode]=[T0].[UCode]
    group by [T5].[RegistrationNumber],[T0].[IdPaycheck], [T4].[OLCode], [T0].[DecimalValue],[T0].[UCode]



    et ça donne le bon résultat pour le cumul en question, maintenant j'ai besoin d'aide s'il vous plait, pour faire la même chose pour tous les cumuls dont j'ai besoin et pour tous les salariés de la base,


  • auteur

    Rebonjour , j'ai pu réaliser ma requête sauf qu'elle me retourne plusieurs lignes alors que je dois avoir une seule pour chaque salarié j'ai utilisé le Group by mais ça fonctionne pas , ci-après la requête et merci beaucoup de votre aide ,


    SELECT YEAR(Paycheck .PeriodPaye) AS Exercice, MONTH(Paycheck .PeriodPaye) AS Mois,Employee.RegistrationNumber AS Matricule,Employee.EmployeeLastName AS Nom,
    Employee.Contact_FirstName AS Prénom, Employee.Address_Address1 AS Adresse, Employee.xx_No_C_I_N AS [N° CIN],Employee.NumberOfResidencePermit AS [Carte Séjour],
    Employee.xx_No_CNSS AS [N° CNSS] , Employee.xx_Situation_Famille AS [Situation Familiale],
    Employee.xx_Taux_Frais_Professionnels AS [Taux des frais professionnels],
    Employee.xx_Nombre_de_Personnes_a_Charge AS [Nbre de personens à charge],
    Employee.xx_Date_Autorisation_de_Construire AS [Date d'autorisation de construire],
    Employee.xx_Date_Permis_d_Habiter AS [Date permis d'habiter],
    PaycheckLine.EmployeeBasis AS [Nbre de Jours],
    (case when PaycheckLine.OLCodeItem='G_N_J_T_M#' then PaycheckLine.EmployeeBasis else 0 end) AS NombreJours,
    sum(case when Cumul.OLCODE= 'SALAIRE_BASE_IR#' then PaycheckValue.DecimalValue else 0 end) as SALAIREANNUEL,
    sum(case when Cumul.OLCODE= 'ABTASS_SS' then PaycheckValue.DecimalValue else 0 end) as BRUT,
    sum(case when Cumul.OLCODE= 'AVANTAGE_EN_NATURE_IR#' then PaycheckValue.DecimalValue else 0 end) as [Montant des avantages en argent ou en nature],
    sum(case when Cumul.OLCODE= 'INDEMNITES_EXONEREES_IR#' then PaycheckValue.DecimalValue else 0 end) as [Montant des éléments exonérés],
    sum(case when Cumul.OLCODE= 'Montant du revenu brut imposable#' then PaycheckValue.DecimalValue else 0 end) as [Montant du revenu brut imposable],
    sum(case when Cumul.OLCODE= 'FRAIS_PROFESSIONNELS_IR#' then PaycheckValue.DecimalValue else 0 end) as [Montant des frais professionnels],
    sum(case when Cumul.OLCODE= 'MONTANT_SAL_RETRAITE_COMPLEMENT#' then PaycheckValue.DecimalValue else 0 end) as [Montant des cotisations d'assurance retraites],
    sum(case when Cumul.OLCODE= 'CUMUL_ECHEANCE_LOGEMENT_IR#' then PaycheckValue.DecimalValue else 0 end) as [Montant des échéances prélevées],
    sum(case when Cumul.OLCODE= 'RETENUES_SOCIALES_CNSS_IPE_AMO#' then PaycheckValue.DecimalValue else 0 end) as [Montants des autres retenues],
    sum(case when Cumul.OLCODE= 'SALAIRE_BRUT_IMPOSBLE#' then PaycheckValue.DecimalValue else 0 end) as [Montant du revenu net imposable],
    sum(case when Cumul.OLCODE= 'IRMOI#' then PaycheckValue.DecimalValue else 0 end) as [I.R. Prélevé]


    FROM (((((PaycheckValue
    LEFT OUTER JOIN Paycheck ON ((PaycheckValue.IdPaycheck = Paycheck .Id))
    LEFT OUTER JOIN PaycheckLine ON Paycheck .Id = PaycheckLine.PaycheckId
    LEFT OUTER JOIN CatalogueCumul ON ((Paycheck .IdCatalogueCumul = CatalogueCumul.Id)))
    LEFT OUTER JOIN CatalogueLineCumul ON ((CatalogueCumul.Id = CatalogueLineCumul.[IdCatalogue])))
    LEFT OUTER JOIN Cumul ON ((CatalogueLineCumul.[IdElement] = Cumul.Id)))
    LEFT OUTER JOIN Employee ON ((Paycheck .[UCodeEmployee] = Employee.UCode))))

    WHERE (((Employee.[VersionStatus] = 1) OR (Employee.[VersionStatus] IS NULL)))
    AND (YEAR(Paycheck .PeriodPaye) = 2019) AND
    (MONTH(Paycheck .PeriodPaye) = 1) AND Cumul.UCode=PaycheckValue.UCode AND Employee.[RegistrationNumber]='0003'



    Group by
    PaycheckValue.IdPaycheck,Employee.RegistrationNumber ,Employee.EmployeeLastName ,

    Employee.Contact_FirstName , Employee.Address_Address1, Employee.xx_No_C_I_N ,Employee.NumberOfResidencePermit ,
    Employee.xx_No_CNSS , Employee.xx_Situation_Famille,
    Employee.xx_Taux_Frais_Professionnels ,
    Employee.xx_Nombre_de_Personnes_a_Charge ,
    Employee.xx_Date_Autorisation_de_Construire ,
    Employee.xx_Date_Permis_d_Habiter ,PaycheckValue.UCode,Paycheck .PeriodPaye,
    PaycheckLine.EmployeeBasis,
    PaycheckLine.OLCodeItem

  • Marsh

    NOVEMBER 9, 2013 AT 9:15 PM

    vous avez compris la majorité du problème sauf que pour chaque salarié de ma liste, DecimalValue doit être remplie selon le OLCode du cumul que l'on veut, non pas vide mais forcement y a des valeurs pour chaque salarié, après c'est moi qui lui précise les OLCode concernés pour qu'il me les affiche dans l'ordre que je veux , j'espère que j'ai répondu à votre question, j'ai un fichier excel sur lesquels j'ai les différents colonnes à remplir , ci-après un aperçu (la valeur de tout ce qui est cumul est dans la colonne DecimalValue) faut alors pouvoir les afficher et les faie correspondre au bon salarié)

    Reply

    Leave a Replay

    Make sure you enter the(*)required information where indicate.HTML code is not allowed