Différence de deux colonnes SQL
Fermé
EBIM20
-
16 sept. 2019 à 10:28
yg_be Messages postés 23425 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 12 janvier 2025 - 26 sept. 2019 à 10:59
yg_be Messages postés 23425 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 12 janvier 2025 - 26 sept. 2019 à 10:59
A voir également:
- Différence de deux colonnes SQL
- Faire deux colonnes sur word - Guide
- Inverser deux colonnes excel - Guide
- Fusionner deux colonnes excel - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Formule moyenne excel plusieurs colonnes - Guide
2 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
16 sept. 2019 à 11:34
16 sept. 2019 à 11:34
Bonjour,
Pour ça, il faudrait pouvoir avoir les deux données sur la même ligne, alors qu'elle sont pour l'instant sur deux lignes différentes.
Il y a plusieurs façons de réaliser ça, mais ça va dépendre d'une question préalable : les champs OLCodeItem et Label doivent venir de laquelle des deux lignes ?
Xavier
Pour ça, il faudrait pouvoir avoir les deux données sur la même ligne, alors qu'elle sont pour l'instant sur deux lignes différentes.
Il y a plusieurs façons de réaliser ça, mais ça va dépendre d'une question préalable : les champs OLCodeItem et Label doivent venir de laquelle des deux lignes ?
Xavier
yg_be
Messages postés
23425
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 janvier 2025
Ambassadeur
1 557
Modifié le 18 sept. 2019 à 11:46
Modifié le 18 sept. 2019 à 11:46
bonjour, les montants imposables et non imposables sont-ils sur la même ligne, dans la réponse à la requête?
si non, je suggère ceci:
si non, je suggère ceci:
SELECT Employee.RegistrationNumber AS Matricule, PaycheckLine.OLCodeItem AS [Code de l'élément exonéré], PaycheckLine.Label AS Description, sum((CASE WHEN PaycheckLine.OLCodeItem='GI_DEP_PP#' THEN PaycheckLine.EmployeeAmount ELSE 0 END)) AS [Montant non imposable], sum((CASE WHEN PaycheckLine.OLCodeItem='GI_DEP_PP_IMP#' THEN PaycheckLine.EmployeeAmount ELSE 0 END)) AS [Montant Imposable], sum((CASE WHEN PaycheckLine.OLCodeItem='GI_DEP_PP#' THEN PaycheckLine.EmployeeAmount ELSE 0 END)) - sum((CASE WHEN PaycheckLine.OLCodeItem='GI_DEP_PP_IMP#' THEN PaycheckLine.EmployeeAmount ELSE 0 END)) as [partie exoneree] FROM ((PaycheckLine LEFT OUTER JOIN Item ON ((PaycheckLine.UCodeItem = Item.UCode)) LEFT OUTER JOIN Paycheck ON ((PaycheckLine.PaycheckId = Paycheck.Id))) LEFT OUTER JOIN Employee ON ((Paycheck.UCodeEmployee = Employee.UCode))) WHERE (((Employee.VersionStatus = 1) OR (Employee.VersionStatus IS NULL))) group by Employee.RegistrationNumber, PaycheckLine.OLCodeItem, PaycheckLine.Label
yg_be
Messages postés
23425
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 janvier 2025
1 557
>
EBIM20
Modifié le 23 sept. 2019 à 16:06
Modifié le 23 sept. 2019 à 16:06
et ainsi?
SELECT Employee.RegistrationNumber AS Matricule, sum((CASE WHEN PaycheckLine.OLCodeItem='GI_DEP_PP#' THEN PaycheckLine.EmployeeAmount ELSE 0 END)) AS [Montant non imposable], sum((CASE WHEN PaycheckLine.OLCodeItem='GI_DEP_PP_IMP#' THEN PaycheckLine.EmployeeAmount ELSE 0 END)) AS [Montant Imposable], sum((CASE WHEN PaycheckLine.OLCodeItem='GI_DEP_PP#' THEN PaycheckLine.EmployeeAmount ELSE 0 END)) - sum((CASE WHEN PaycheckLine.OLCodeItem='GI_DEP_PP_IMP#' THEN PaycheckLine.EmployeeAmount ELSE 0 END)) as [partie exoneree] FROM ((PaycheckLine LEFT OUTER JOIN Item ON ((PaycheckLine.UCodeItem = Item.UCode)) LEFT OUTER JOIN Paycheck ON ((PaycheckLine.PaycheckId = Paycheck.Id))) LEFT OUTER JOIN Employee ON ((Paycheck.UCodeEmployee = Employee.UCode))) WHERE (((Employee.VersionStatus = 1) OR (Employee.VersionStatus IS NULL))) group by Employee.RegistrationNumber
EBIM20
Messages postés
42
Date d'inscription
vendredi 19 avril 2019
Statut
Membre
Dernière intervention
25 avril 2021
25 sept. 2019 à 10:17
25 sept. 2019 à 10:17
Bonjour, no ça retourne pas la bonne valeur c'est à dire la différence de la partie global moins la aprtie imposable
yg_be
Messages postés
23425
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 janvier 2025
1 557
>
EBIM20
Messages postés
42
Date d'inscription
vendredi 19 avril 2019
Statut
Membre
Dernière intervention
25 avril 2021
25 sept. 2019 à 11:02
25 sept. 2019 à 11:02
cela retourne quoi?
EBIM20
Messages postés
42
Date d'inscription
vendredi 19 avril 2019
Statut
Membre
Dernière intervention
25 avril 2021
Modifié le 25 sept. 2019 à 12:49
Modifié le 25 sept. 2019 à 12:49
17 sept. 2019 à 18:34
en fait j'ai besoin d'afficher le code de l'élément, la decription et une 3èeme colonne qui me calcule la différence de deux éléments dont je précise les codes.
Je ne sais pas si j'ai répondu à votre question?
18 sept. 2019 à 08:59
Aujourd'hui dans ta base, les deux valeurs que tu veux combiner sont stockées sur deux lignes différentes.
Chacune de ces deux lignes contient un code PaycheckLine.OLCodeItem et une description PaycheckLine.Label.
Ma question, peut-être pas très bien posée, c'est celle-là : est-ce que ces codes sont nécessairement identiques ? Si non, lequel doit-on renvoyer ?
Xavier
(PS dans ta requête d'origine, tu écris . Est-ce que cça ne devrait pas plutôt être PaycheckLine.UCodeItem ?)
18 sept. 2019 à 11:29
18 sept. 2019 à 11:54
C'est juste que les deux lignes vont être fusionnées en une seule dans le résultat ; or tu demandes d'autres champs de ces deux lignes ! Donc ma question, c'est comment on choisit lequel des deux on affiche...
Pour te faire comprendre ce que je veux dire, je te propose cette requête-là qui résout ton problème mais pourra donner des infos en trop :
Tu vois que tu as deux fois les Codes et Label, et ma question était simplement de savoir lequel choisir...
Xavier
19 sept. 2019 à 10:13