Retrouver articles n'ayant plus de lien avec leur famille

Forum consacré aux développements d'applications interfacées avec les logiciels Sage

Modérateurs: Super Modérateur, Modérateurs

Règles du forum
Merci de prendre connaissance des règles d'utilisation du forum

Avant de poster un nouveau message, utilisez la fonction RECHERCHER. Indiquez la VERSION de votre logiciel et toutes informations utiles à la résolution de votre question. Ne rédigez pas vos messages en MAJUSCULES. Soyez courtois et pensez aux formules de POLITESSE d'usage. Les messages à vocation COMMERCIALE ou PUBLICITAIRE seront supprimés.

*** LORSQU'UN SUJET EST RESOLU, SON AUTEUR DOIT EDITER LE 1ER MESSAGE DU SUJET EN HAUT DE PAGE ET COCHER "SUJET RESOLU" ***

Retrouver articles n'ayant plus de lien avec leur famille

Messagede tbothorel » Mer 17 FĂ©v 2010 16:07

bonjour,

est-ce que quelqu'un aurait déja fait une requête permettant de retrouver les catégories comptables de tous les articles qui ne sont plus liés à leur famille? En effet suite à une migration depuis un autre logiciel, la table F_ARTCOMPTA a été remplie pour l'intégralité des articles et pour toutes leur catégorie comptables, même si il n'y a aucune différence avec la famille. Résultat j'ai 53000 lignes dans la table.
Ma solution est de vider la table, mais avant comment retrouver les articles qui auraient réellement des comptes différent de leur famille ?
tbothorel
Posteur néophyte
Posteur néophyte
 
Messages: 19
Inscription: Mer 30 Avr 2008 12:22

Re: Retrouver articles n'ayant plus de lien avec leur famille

Messagede OokieDookie » Lun 1 Mar 2010 10:43

Bonjour,

Code: Tout sélectionner
SELECT
   ART.AR_Ref,
   ART.AR_Design,
   FAM.FA_CodeFamille,
   FAM.FA_Intitule,
   CASE FAMCPTA.FCP_Type
      WHEN 0 THEN 'Vte'
      WHEN 1 THEN 'Ach'
      WHEN 2 THEN 'Stk'
      ELSE 'N/A ?'
   END AS TypeCpta,
   FAMCPTA.FCP_Champ AS NoCatCpta,
   FAMCPTA.FCP_ComptaCPT_CompteG AS CptG_Fam,
   ARTCPTA.ACP_ComptaCPT_CompteG AS CptG_Art   
FROM
   F_ARTICLE ART
LEFT OUTER JOIN
   F_ARTCOMPTA ARTCPTA
ON
   ART.AR_Ref = ARTCPTA.AR_Ref
LEFT OUTER JOIN
   F_FAMILLE FAM
ON
   ART.FA_CodeFamille = FAM.FA_CodeFamille
LEFT OUTER JOIN
   F_FAMCOMPTA FAMCPTA
ON
   FAM.FA_CodeFamille = FAMCPTA.FA_CodeFamille
WHERE
   FAMCPTA.FCP_ComptaCPT_CompteG <> ARTCPTA.ACP_ComptaCPT_CompteG


Pour info la valeur de FAMCPTA.FCP_Champ AS NoCatCpta correspond à la position de la catégorie comptable dans Fichier / APD.

HTH,
"L'expérience est le nom que chacun donne à ses erreurs." (O. Wilde)
Qualité et précision de la question conditionnent celles de la réponse. :roll:
:arrow:Nouveau venu ? Une urgence ? A lire...
:arrow:SMS-addict / M(o)ufles OEM ?
Avatar de l’utilisateur
OokieDookie
Modérateur
Modérateur
 
Messages: 1012
Inscription: Jeu 14 Fév 2008 13:50
Localisation: Paris

Re: Retrouver articles n'ayant plus de lien avec leur famille

Messagede tbothorel » Lun 1 Mar 2010 11:32

Merci beaucoup.


Je vais essayer de travailler sur cette requête car il doit y avoir un problème de jointure, comme dans ce que j'ai essayé de faire personnellement : le nombre de lignes renvoyées est supérieur au nombre de ligne de la table _F_ARTCOMPTA (~+ 72000 lignes pour une table de 54000).

Personnellement je suis arrivé à cela, mais qui me renvoie un nombre très faible de lignes ( ~2000), du coup je ne suis pas certains qu'il y ait tout :

Code: Tout sélectionner
SELECT  F_ARTCOMPTA.AR_Ref,
      F_ARTCOMPTA.ACP_Type,
      F_ARTCOMPTA.ACP_Champ,
      F_ARTCOMPTA.ACP_ComptaCPT_CompteG,
        F_FAMCOMPTA.FCP_ComptaCPT_CompteG
FROM    F_FAMCOMPTA
INNER JOIN
        F_ARTICLE ON F_FAMCOMPTA.FA_CodeFamille = F_ARTICLE.FA_CodeFamille
INNER JOIN
        F_ARTCOMPTA ON F_ARTICLE.AR_Ref = F_ARTCOMPTA.AR_Ref
      AND F_FAMCOMPTA.FCP_Type = F_ARTCOMPTA.ACP_Type
      AND F_FAMCOMPTA.FCP_Champ = F_ARTCOMPTA.ACP_Champ
      AND F_FAMCOMPTA.FCP_ComptaCPT_CompteG <> F_ARTCOMPTA.ACP_ComptaCPT_CompteG
ORDER BY F_ARTCOMPTA.AR_Ref
tbothorel
Posteur néophyte
Posteur néophyte
 
Messages: 19
Inscription: Mer 30 Avr 2008 12:22

Re: Retrouver articles n'ayant plus de lien avec leur famille

Messagede OokieDookie » Lun 1 Mar 2010 13:42

Re,

Bien vu pour les colonnes supplémentaires dans la jointure.
D'un point de vue de puriste, le dernier AND (sur la différence) devrait se trouver dans un clause WHERE mais les résultats ne me semblent pas choquants.

Vous pouvez toujours supprimer cette clause et vous créer un champ avec un CASE :

Code: Tout sélectionner
CASE WHEN  F_FAMCOMPTA.FCP_ComptaCPT_CompteG <> F_ARTCOMPTA.ACP_ComptaCPT_CompteG
THEN 'A garder' ELSE 'A supprimer' END AS Ctrl


Bonne journée
"L'expérience est le nom que chacun donne à ses erreurs." (O. Wilde)
Qualité et précision de la question conditionnent celles de la réponse. :roll:
:arrow:Nouveau venu ? Une urgence ? A lire...
:arrow:SMS-addict / M(o)ufles OEM ?
Avatar de l’utilisateur
OokieDookie
Modérateur
Modérateur
 
Messages: 1012
Inscription: Jeu 14 Fév 2008 13:50
Localisation: Paris

Re: Retrouver articles n'ayant plus de lien avec leur famille

Messagede tbothorel » Mar 2 Mar 2010 10:23

en fait comme je le disais c'est là je ne suis pas sur que le résultat que j' ai soit correct, car avec votre modification au final je devrais avoir mes 54000 lignes avec la colonne 'A supprimer' ou 'A garder', mais je n'ai que 6418 lignes.

Merci
tbothorel
Posteur néophyte
Posteur néophyte
 
Messages: 19
Inscription: Mer 30 Avr 2008 12:22

Re: Retrouver articles n'ayant plus de lien avec leur famille

Messagede OokieDookie » Jeu 4 Mar 2010 13:35

Re,

Il va falloir y aller par étapes :
commencez par F_ARTCOMPTA et F_ARTICLE et validez les résultats à ce niveau, normalement vous devriez avoir vos 53000 lignes, sinon utilisez des jointures externes.
Puis rajoutez F_FAMCOMPTA et F_FAMILLE

A+
"L'expérience est le nom que chacun donne à ses erreurs." (O. Wilde)
Qualité et précision de la question conditionnent celles de la réponse. :roll:
:arrow:Nouveau venu ? Une urgence ? A lire...
:arrow:SMS-addict / M(o)ufles OEM ?
Avatar de l’utilisateur
OokieDookie
Modérateur
Modérateur
 
Messages: 1012
Inscription: Jeu 14 Fév 2008 13:50
Localisation: Paris


Retourner vers Développements ODBC, Objets métiers, SQL

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités