Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

BDD mal conçue au départ...et conséquences

7 réponses
Avatar
Thierry _
Bonjour,

J'hérite d'une BDD pas très bien conçue et je suis bloqué.
Voilà.
Une table FACTURES contient, entre autres champs, L1, Mtt1, Imp1,
puis L2, Mtt2, etc jusque L5, Mtt5, Imp5.

L= Libellés / descriptif ,
Mtt = montant;
Imp = Imputation
Chaque facture inclut donc les 5 L, les 5 Mtt, les 5 Imp,
Toutes les lignes ne sont pas systématiquement utilisées et dans ce cas,
Mtt=0
Toute ligne utilisée comporte obligatoirement le libellé, le montant et
l'imputation.
Il y a plusieurs imputations possibles (une quinzaine).
Il n'est pas possible d'attribuer une ligne à chaque numéro
d'imputation(d'autant moins qu'il y a 15 imputations et seulement 5 lignes
disponibles dans la facture)

Mon problème:
Je voudrais rechercher pour un ensemble de factures les lignes et montants
respectifs regroupés par imputations.
Exemple:
Fac2008017 L3 Mtt 405.00 Imp 025
Fac2008123 L1 Mtt 502.40 Imp 025
...........................
Fac2008199 L4 Mtt 10.06 Imp 025
Total : 917.46 Imp 025 (obtenu par
regroupement dans un état)

Et ainsi de suite pour toutes les imputations utilisées dans mon ensemble.

Merci pour un conseil (aussi simple que possible....)

Thierry_

7 réponses

Avatar
Michel__D
Bonjour,

Thierry _ a écrit :
Bonjour,

J'hérite d'une BDD pas très bien conçue et je suis bloqué.
Voilà.
Une table FACTURES contient, entre autres champs, L1, Mtt1, Imp1,
puis L2, Mtt2, etc jusque L5, Mtt5, Imp5.

L= Libellés / descriptif ,
Mtt = montant;
Imp = Imputation
Chaque facture inclut donc les 5 L, les 5 Mtt, les 5 Imp,
Toutes les lignes ne sont pas systématiquement utilisées et dans ce cas,
Mtt=0
Toute ligne utilisée comporte obligatoirement le libellé, le montant et
l'imputation.
Il y a plusieurs imputations possibles (une quinzaine).
Il n'est pas possible d'attribuer une ligne à chaque numéro
d'imputation(d'autant moins qu'il y a 15 imputations et seulement 5 lignes
disponibles dans la facture)

Mon problème:
Je voudrais rechercher pour un ensemble de factures les lignes et montants
respectifs regroupés par imputations.
Exemple:
Fac2008017 L3 Mtt 405.00 Imp 025
Fac2008123 L1 Mtt 502.40 Imp 025
............................
Fac2008199 L4 Mtt 10.06 Imp 025
Total : 917.46 Imp 025 (obtenu par
regroupement dans un état)

Et ainsi de suite pour toutes les imputations utilisées dans mon ensemble.

Merci pour un conseil (aussi simple que possible....)



Essaye avec une requête union qui va te fournir une structure plus adapté :

SELECT L1 AS Libelle, "L1" AS Origine, Mtt1 AS Montant, Imp1 AS Imputation
FROM FACTURES
UNION
SELECT L2, "L2", Mtt2, Imp2
FROM FACTURES
UNION
SELECT L3, "L3", Mtt3, Imp3
FROM FACTURES
UNION
SELECT L4, "L4", Mtt4, Imp4
FROM FACTURES
UNION
SELECT L5, "L5", Mtt5, Imp5
FROM FACTURES;

A partir de cette requête tu devrais savoir faire le regroupement sur
le champ "Imputation" et l'opération somme sur le champ "Montant"
Avatar
Michel__D
Hum en relisant, je m'aperçois qu'il y a une ambiguité entre ces 2 passages :

Ce 1er passage qui indiquerait une ligne avec 15 champs
"Une table FACTURES contient, entre autres champs, L1, Mtt1, Imp1,
puis L2, Mtt2, etc jusque L5, Mtt5, Imp5."

Et ce 2ème passage qui lui indiquerait 5 lignes avec 3 champs
"Chaque facture inclut donc les 5 L, les 5 Mtt, les 5 Imp,
Toutes les lignes ne sont pas systématiquement utilisées et dans ce cas,"

Donc il serait judicieux de bien repréciser la structure et pour l'exemple
donné il faudrait aussi indiquer d'ou sortent les "L3", "L1", "L4" mentionnés.


Michel__D a écrit :
Bonjour,

Thierry _ a écrit :
Bonjour,

J'hérite d'une BDD pas très bien conçue et je suis bloqué.
Voilà.
Une table FACTURES contient, entre autres champs, L1, Mtt1, Imp1,
puis L2, Mtt2, etc jusque L5, Mtt5, Imp5.

L= Libellés / descriptif ,
Mtt = montant;
Imp = Imputation
Chaque facture inclut donc les 5 L, les 5 Mtt, les 5 Imp,
Toutes les lignes ne sont pas systématiquement utilisées et dans ce cas,
Mtt=0
Toute ligne utilisée comporte obligatoirement le libellé, le montant et
l'imputation.
Il y a plusieurs imputations possibles (une quinzaine).
Il n'est pas possible d'attribuer une ligne à chaque numéro
d'imputation(d'autant moins qu'il y a 15 imputations et seulement 5
lignes
disponibles dans la facture)

Mon problème:
Je voudrais rechercher pour un ensemble de factures les lignes et
montants
respectifs regroupés par imputations.
Exemple:
Fac2008017 L3 Mtt 405.00 Imp 025
Fac2008123 L1 Mtt 502.40 Imp 025
............................
Fac2008199 L4 Mtt 10.06 Imp 025
Total : 917.46 Imp 025 (obtenu par
regroupement dans un état)

Et ainsi de suite pour toutes les imputations utilisées dans mon
ensemble.

Merci pour un conseil (aussi simple que possible....)



Essaye avec une requête union qui va te fournir une structure plus adapté :

SELECT L1 AS Libelle, "L1" AS Origine, Mtt1 AS Montant, Imp1 AS Imputation
FROM FACTURES
UNION
SELECT L2, "L2", Mtt2, Imp2
FROM FACTURES
UNION
SELECT L3, "L3", Mtt3, Imp3
FROM FACTURES
UNION
SELECT L4, "L4", Mtt4, Imp4
FROM FACTURES
UNION
SELECT L5, "L5", Mtt5, Imp5
FROM FACTURES;

A partir de cette requête tu devrais savoir faire le regroupement sur
le champ "Imputation" et l'opération somme sur le champ "Montant"


Avatar
Thierry_
Précisions, en effet utiles:
Il y a 15 imput *possibles*; il n'y a pas 15 champs dans la facture.
Chacune des 5 lignes de la facture utilisera une des 15 imput possibles.
La structure de la table FACTURES est comme ceci:

DateFac
NumFac
...autres divers inutiles pour cet exemple
L1
L2
L3
L4
L5
Mtt1
Mtt2
Mtt3
Mtt4
Mtt5
Imp1
Imp2
Imp3
Imp4
Imp5

Une facture contiendra un maximum de 5 lignes, auxquelles sont associées un
montant et une imputation.


Je complète mon exemple :

Fac2008017 L3 Mtt3 = 405.00 Imp3 = 025
L2 Mtt2 = 550.05 Imp2 = 040
L1 Mtt1 = 17.89 Imp1 = 935

Fac2008123 L1 Mtt1 = 502.40 Imp1 = 025
L2 Mtt2 = 40.26 Imp2 = 000


Fac2008199 L1 Mtt1 = 25.50 imp1 = 040
L2 Mtt2 = 35.70 Imp2 = 455
L3 Mtt3 = 10.26 Imp3 = 010
L4 Mtt = 10.06 Imp4 = 025

Voilà, j'espère avoir été plus clair.
Merci,

Th_




"Michel__D" a écrit dans le message de
news:

Hum en relisant, je m'aperçois qu'il y a une ambiguité entre ces 2
passages :

Ce 1er passage qui indiquerait une ligne avec 15 champs
"Une table FACTURES contient, entre autres champs, L1, Mtt1, Imp1,
puis L2, Mtt2, etc jusque L5, Mtt5, Imp5."

Et ce 2ème passage qui lui indiquerait 5 lignes avec 3 champs
"Chaque facture inclut donc les 5 L, les 5 Mtt, les 5 Imp,
Toutes les lignes ne sont pas systématiquement utilisées et dans ce cas,"

Donc il serait judicieux de bien repréciser la structure et pour l'exemple
donné il faudrait aussi indiquer d'ou sortent les "L3", "L1", "L4"
mentionnés.


Michel__D a écrit :
Bonjour,

Thierry _ a écrit :
Bonjour,

J'hérite d'une BDD pas très bien conçue et je suis bloqué.
Voilà.
Une table FACTURES contient, entre autres champs, L1, Mtt1, Imp1,
puis L2, Mtt2, etc jusque L5, Mtt5, Imp5.

L= Libellés / descriptif ,
Mtt = montant;
Imp = Imputation
Chaque facture inclut donc les 5 L, les 5 Mtt, les 5 Imp,
Toutes les lignes ne sont pas systématiquement utilisées et dans ce cas,
Mtt=0
Toute ligne utilisée comporte obligatoirement le libellé, le montant et
l'imputation.
Il y a plusieurs imputations possibles (une quinzaine).
Il n'est pas possible d'attribuer une ligne à chaque numéro
d'imputation(d'autant moins qu'il y a 15 imputations et seulement 5
lignes
disponibles dans la facture)

Mon problème:
Je voudrais rechercher pour un ensemble de factures les lignes et
montants
respectifs regroupés par imputations.
Exemple:
Fac2008017 L3 Mtt 405.00 Imp 025
Fac2008123 L1 Mtt 502.40 Imp 025
............................
Fac2008199 L4 Mtt 10.06 Imp 025
Total : 917.46 Imp 025 (obtenu par
regroupement dans un état)

Et ainsi de suite pour toutes les imputations utilisées dans mon
ensemble.

Merci pour un conseil (aussi simple que possible....)



Essaye avec une requête union qui va te fournir une structure plus adapté
:

SELECT L1 AS Libelle, "L1" AS Origine, Mtt1 AS Montant, Imp1 AS
Imputation
FROM FACTURES
UNION
SELECT L2, "L2", Mtt2, Imp2
FROM FACTURES
UNION
SELECT L3, "L3", Mtt3, Imp3
FROM FACTURES
UNION
SELECT L4, "L4", Mtt4, Imp4
FROM FACTURES
UNION
SELECT L5, "L5", Mtt5, Imp5
FROM FACTURES;

A partir de cette requête tu devrais savoir faire le regroupement sur
le champ "Imputation" et l'opération somme sur le champ "Montant"




Avatar
Michel__D
re,

Heu... ben c'est pas plus clair, alors on va faire simple, quels sont les
champs ou colonnes de la table FACTURES ?

Et si tu préfére donne un exemple comme ceci :
La table "UneTable" contient les 3 champs suivants :
IDenr, DateEnr, LibEnr

PS:Attention ma demande porte sur la table pas sur la représentation que
tu peux avoir via un formulaire.


Thierry_ a écrit :
Précisions, en effet utiles:
Il y a 15 imput *possibles*; il n'y a pas 15 champs dans la facture.
Chacune des 5 lignes de la facture utilisera une des 15 imput possibles.
La structure de la table FACTURES est comme ceci:

DateFac
NumFac
....autres divers inutiles pour cet exemple
L1
L2
L3
L4
L5
Mtt1
Mtt2
Mtt3
Mtt4
Mtt5
Imp1
Imp2
Imp3
Imp4
Imp5

Une facture contiendra un maximum de 5 lignes, auxquelles sont associées un
montant et une imputation.


Je complète mon exemple :

Fac2008017 L3 Mtt3 = 405.00 Imp3 = 025
L2 Mtt2 = 550.05 Imp2 = 040
L1 Mtt1 = 17.89 Imp1 = 935

Fac2008123 L1 Mtt1 = 502.40 Imp1 = 025
L2 Mtt2 = 40.26 Imp2 = 000


Fac2008199 L1 Mtt1 = 25.50 imp1 = 040
L2 Mtt2 = 35.70 Imp2 = 455
L3 Mtt3 = 10.26 Imp3 = 010
L4 Mtt = 10.06 Imp4 = 025

Voilà, j'espère avoir été plus clair.
Merci,

Th_




"Michel__D" a écrit dans le message de
news:
Hum en relisant, je m'aperçois qu'il y a une ambiguité entre ces 2
passages :

Ce 1er passage qui indiquerait une ligne avec 15 champs
"Une table FACTURES contient, entre autres champs, L1, Mtt1, Imp1,
puis L2, Mtt2, etc jusque L5, Mtt5, Imp5."

Et ce 2ème passage qui lui indiquerait 5 lignes avec 3 champs
"Chaque facture inclut donc les 5 L, les 5 Mtt, les 5 Imp,
Toutes les lignes ne sont pas systématiquement utilisées et dans ce cas,"

Donc il serait judicieux de bien repréciser la structure et pour l'exemple
donné il faudrait aussi indiquer d'ou sortent les "L3", "L1", "L4"
mentionnés.


Michel__D a écrit :
Bonjour,

Thierry _ a écrit :
Bonjour,

J'hérite d'une BDD pas très bien conçue et je suis bloqué.
Voilà.
Une table FACTURES contient, entre autres champs, L1, Mtt1, Imp1,
puis L2, Mtt2, etc jusque L5, Mtt5, Imp5.

L= Libellés / descriptif ,
Mtt = montant;
Imp = Imputation
Chaque facture inclut donc les 5 L, les 5 Mtt, les 5 Imp,
Toutes les lignes ne sont pas systématiquement utilisées et dans ce cas,
Mtt=0
Toute ligne utilisée comporte obligatoirement le libellé, le montant et
l'imputation.
Il y a plusieurs imputations possibles (une quinzaine).
Il n'est pas possible d'attribuer une ligne à chaque numéro
d'imputation(d'autant moins qu'il y a 15 imputations et seulement 5
lignes
disponibles dans la facture)

Mon problème:
Je voudrais rechercher pour un ensemble de factures les lignes et
montants
respectifs regroupés par imputations.
Exemple:
Fac2008017 L3 Mtt 405.00 Imp 025
Fac2008123 L1 Mtt 502.40 Imp 025
............................
Fac2008199 L4 Mtt 10.06 Imp 025
Total : 917.46 Imp 025 (obtenu par
regroupement dans un état)

Et ainsi de suite pour toutes les imputations utilisées dans mon
ensemble.

Merci pour un conseil (aussi simple que possible....)


Essaye avec une requête union qui va te fournir une structure plus adapté
:

SELECT L1 AS Libelle, "L1" AS Origine, Mtt1 AS Montant, Imp1 AS
Imputation
FROM FACTURES
UNION
SELECT L2, "L2", Mtt2, Imp2
FROM FACTURES
UNION
SELECT L3, "L3", Mtt3, Imp3
FROM FACTURES
UNION
SELECT L4, "L4", Mtt4, Imp4
FROM FACTURES
UNION
SELECT L5, "L5", Mtt5, Imp5
FROM FACTURES;

A partir de cette requête tu devrais savoir faire le regroupement sur
le champ "Imputation" et l'opération somme sur le champ "Montant"








Avatar
Thierry _
"Michel__D" a écrit dans le message de
news:
re,

Heu... ben c'est pas plus clair, alors on va faire simple, quels sont les
champs ou colonnes de la table FACTURES ?



Ben, je ne sais que dire de plus que déjà dit :

La structure de la table FACTURES est comme ceci: (j'ai supprimé les "Autres
divers inutiles pour cet exemple" pour plus de clarté :

DateFac
NumFac
L1
L2
L3
L4
L5
Mtt1
Mtt2
Mtt3
Mtt4
Mtt5
Imp1
Imp2
Imp3
Imp4
Imp5



DONC, la table contient pour chaque enregistrement de facture, TOUS les
champs mentionnés ci-dessus, soit 17 champs.

J'espère avoir été plus clair...






Et si tu préfére donne un exemple comme ceci :
La table "UneTable" contient les 3 champs suivants :
IDenr, DateEnr, LibEnr

PS:Attention ma demande porte sur la table pas sur la représentation que
tu peux avoir via un formulaire.


Thierry_ a écrit :
> Précisions, en effet utiles:
> Il y a 15 imput *possibles*; il n'y a pas 15 champs dans la facture.
> Chacune des 5 lignes de la facture utilisera une des 15 imput possibles.
> La structure de la table FACTURES est comme ceci:
>
> DateFac
> NumFac
> ....autres divers inutiles pour cet exemple
> L1
> L2
> L3
> L4
> L5
> Mtt1
> Mtt2
> Mtt3
> Mtt4
> Mtt5
> Imp1
> Imp2
> Imp3
> Imp4
> Imp5
>
> Une facture contiendra un maximum de 5 lignes, auxquelles sont associées


un
> montant et une imputation.
>
>
> Je complète mon exemple :
>
> Fac2008017 L3 Mtt3 = 405.00 Imp3 = 025
> L2 Mtt2 = 550.05 Imp2 = 040
> L1 Mtt1 = 17.89 Imp1 = 935
>
> Fac2008123 L1 Mtt1 = 502.40 Imp1 = 025
> L2 Mtt2 = 40.26 Imp2 = 000
>
>
> Fac2008199 L1 Mtt1 = 25.50 imp1 = 040
> L2 Mtt2 = 35.70 Imp2 = 455
> L3 Mtt3 = 10.26 Imp3 = 010
> L4 Mtt = 10.06 Imp4 = 025
>
> Voilà, j'espère avoir été plus clair.
> Merci,
>
> Th_
>
>
>
>
> "Michel__D" a écrit dans le


message de
> news:
>> Hum en relisant, je m'aperçois qu'il y a une ambiguité entre ces 2
>> passages :
>>
>> Ce 1er passage qui indiquerait une ligne avec 15 champs
>> "Une table FACTURES contient, entre autres champs, L1, Mtt1, Imp1,
>> puis L2, Mtt2, etc jusque L5, Mtt5, Imp5."
>>
>> Et ce 2ème passage qui lui indiquerait 5 lignes avec 3 champs
>> "Chaque facture inclut donc les 5 L, les 5 Mtt, les 5 Imp,
>> Toutes les lignes ne sont pas systématiquement utilisées et dans ce


cas,"
>>
>> Donc il serait judicieux de bien repréciser la structure et pour


l'exemple
>> donné il faudrait aussi indiquer d'ou sortent les "L3", "L1", "L4"
>> mentionnés.
>>
>>
>> Michel__D a écrit :
>>> Bonjour,
>>>
>>> Thierry _ a écrit :
>>>> Bonjour,
>>>>
>>>> J'hérite d'une BDD pas très bien conçue et je suis bloqué.
>>>> Voilà.
>>>> Une table FACTURES contient, entre autres champs, L1, Mtt1, Imp1,
>>>> puis L2, Mtt2, etc jusque L5, Mtt5, Imp5.
>>>>
>>>> L= Libellés / descriptif ,
>>>> Mtt = montant;
>>>> Imp = Imputation
>>>> Chaque facture inclut donc les 5 L, les 5 Mtt, les 5 Imp,
>>>> Toutes les lignes ne sont pas systématiquement utilisées et dans ce


cas,
>>>> Mtt=0
>>>> Toute ligne utilisée comporte obligatoirement le libellé, le montant


et
>>>> l'imputation.
>>>> Il y a plusieurs imputations possibles (une quinzaine).
>>>> Il n'est pas possible d'attribuer une ligne à chaque numéro
>>>> d'imputation(d'autant moins qu'il y a 15 imputations et seulement 5
>>>> lignes
>>>> disponibles dans la facture)
>>>>
>>>> Mon problème:
>>>> Je voudrais rechercher pour un ensemble de factures les lignes et
>>>> montants
>>>> respectifs regroupés par imputations.
>>>> Exemple:
>>>> Fac2008017 L3 Mtt 405.00 Imp 025
>>>> Fac2008123 L1 Mtt 502.40 Imp 025
>>>> ............................
>>>> Fac2008199 L4 Mtt 10.06 Imp 025
>>>> Total : 917.46 Imp 025 (obtenu


par
>>>> regroupement dans un état)
>>>>
>>>> Et ainsi de suite pour toutes les imputations utilisées dans mon
>>>> ensemble.
>>>>
>>>> Merci pour un conseil (aussi simple que possible....)
>>> Essaye avec une requête union qui va te fournir une structure plus


adapté
>>> :
>>>
>>> SELECT L1 AS Libelle, "L1" AS Origine, Mtt1 AS Montant, Imp1 AS
>>> Imputation
>>> FROM FACTURES
>>> UNION
>>> SELECT L2, "L2", Mtt2, Imp2
>>> FROM FACTURES
>>> UNION
>>> SELECT L3, "L3", Mtt3, Imp3
>>> FROM FACTURES
>>> UNION
>>> SELECT L4, "L4", Mtt4, Imp4
>>> FROM FACTURES
>>> UNION
>>> SELECT L5, "L5", Mtt5, Imp5
>>> FROM FACTURES;
>>>
>>> A partir de cette requête tu devrais savoir faire le regroupement sur
>>> le champ "Imputation" et l'opération somme sur le champ "Montant"
>
>


Avatar
Michel__D
Thierry _ a écrit :
"Michel__D" a écrit dans le message de
news:
re,

Heu... ben c'est pas plus clair, alors on va faire simple, quels sont les
champs ou colonnes de la table FACTURES ?



Ben, je ne sais que dire de plus que déjà dit :

La structure de la table FACTURES est comme ceci: (j'ai supprimé les "Autres
divers inutiles pour cet exemple" pour plus de clarté :

DateFac
NumFac
L1
L2
L3
L4
L5
Mtt1
Mtt2
Mtt3
Mtt4
Mtt5
Imp1
Imp2
Imp3
Imp4
Imp5



DONC, la table contient pour chaque enregistrement de facture, TOUS les
champs mentionnés ci-dessus, soit 17 champs.

J'espère avoir été plus clair...



Oui c'est clair et donc ma 1ère réponse était pratiquement bonne (ouf).

Essaye avec une requête union qui va te fournir une structure plus adapté :

SELECT NumFac, L1 AS Libelle, "L1" AS Origine, Mtt1 AS Montant, Imp1 AS
Imputation
FROM FACTURES
UNION
SELECT NumFac, L2, "L2", Mtt2, Imp2
FROM FACTURES
UNION
SELECT NumFac, L3, "L3", Mtt3, Imp3
FROM FACTURES
UNION
SELECT NumFac, L4, "L4", Mtt4, Imp4
FROM FACTURES
UNION
SELECT NumFac, L5, "L5", Mtt5, Imp5
FROM FACTURES;

A partir de cette requête tu devrais savoir faire le regroupement sur
le champ "Imputation" et l'opération somme sur le champ "Montant"

PS:Le NumFac va te servir à récupérer éventuellement les informations
des champs manquants.
Avatar
Thierry_
J'essaye lundi et reviens avec le résultat.
Merci Michel
Th_

"Michel__D" a écrit dans le message de
news:
Thierry _ a écrit :
"Michel__D" a écrit dans le message
de
news:
re,

Heu... ben c'est pas plus clair, alors on va faire simple, quels sont
les
champs ou colonnes de la table FACTURES ?



Ben, je ne sais que dire de plus que déjà dit :

La structure de la table FACTURES est comme ceci: (j'ai supprimé les
"Autres
divers inutiles pour cet exemple" pour plus de clarté :

DateFac
NumFac
L1
L2
L3
L4
L5
Mtt1
Mtt2
Mtt3
Mtt4
Mtt5
Imp1
Imp2
Imp3
Imp4
Imp5



DONC, la table contient pour chaque enregistrement de facture, TOUS les
champs mentionnés ci-dessus, soit 17 champs.

J'espère avoir été plus clair...



Oui c'est clair et donc ma 1ère réponse était pratiquement bonne (ouf).

Essaye avec une requête union qui va te fournir une structure plus adapté
:

SELECT NumFac, L1 AS Libelle, "L1" AS Origine, Mtt1 AS Montant, Imp1 AS
Imputation
FROM FACTURES
UNION
SELECT NumFac, L2, "L2", Mtt2, Imp2
FROM FACTURES
UNION
SELECT NumFac, L3, "L3", Mtt3, Imp3
FROM FACTURES
UNION
SELECT NumFac, L4, "L4", Mtt4, Imp4
FROM FACTURES
UNION
SELECT NumFac, L5, "L5", Mtt5, Imp5
FROM FACTURES;

A partir de cette requête tu devrais savoir faire le regroupement sur
le champ "Imputation" et l'opération somme sur le champ "Montant"

PS:Le NumFac va te servir à récupérer éventuellement les informations
des champs manquants.