IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

QlikView Discussion :

Addition fausse entre deux tables


Sujet :

QlikView

  1. #21
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Exact. Que contient la zone Général dans la table des comptes, et que contiennent les zones Général et Compte de la table des faits ?
    Il faut que QV puisse retrouver les mêmes valeurs.
    Dans le lookup, il suffit peut-être de remplacer la valeur Général (là où il n'y a pas de quotes) par Compte ...

  2. #22
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par FORMULARY Voir le message
    Exact. Que contient la zone Général dans la table des comptes, et que contiennent les zones Général et Compte de la table des faits ?
    Il faut que QV puisse retrouver les mêmes valeurs.
    Dans le lookup, il suffit peut-être de remplacer la valeur Général (là où il n'y a pas de quotes) par Compte ...
    alors voici ce que contiennent mes tables.

    Je charge deux fichiers excel,
    1 - mes ecriture comptable pour l'entreprise R
    2- mes écritures comptable pour l'entreprise D

    Mes fichiers excel on la structure suivante :
    Date Général Débit Crédit
    01-01-2012 d60721200 -12€
    etc

    PS : Quand je parle de numéro de compte dans les fichier excel c'est en réalité Général

    (si on observe bien il y a une lettre devant le numéro de compte pour différencier les entreprise entre elle)

    Je charge ensuite le fichier excel dit comptes:

    Qui est le fichier avec les instructions qui se presente comme suit :
    N° compte Libellé Exclure Sens
    60721200 xxxx O D

    ( O = oui ; N= non; D =Débit-crédit; C = Crédit - Débit)

    Dans le script nous avons donc fait un left pour créer des groupe de compte en conservant juste les 3 premier numéros de chaque compte.

    La ou on rentre dans la technique et où je suis perdu totalement c'est dans la construction du script pour le resultat final.

    Nous avons enlever les attribue des societé (petite lettre devant le numéro de compte).

    Je doit donc arrivé a dire je ne veux pas prendre en compte les comptes XXX XXX XXXX XXX de l'entreprise R tout en les conservant dans l'entreprise D.
    Dans l'entreprise D je souhaite ne pas prendre en compte dans le chargement les compte N° XX XX X X X X mais les conserver dans l'entreprise R

    Ensuite je doit arriver a dire la ou il y a un C dans la collone du fichier instruction tu me fait crédit-débit et la ou tu as un un D c'est débit-crédit.

    L'objectif est que quand je fait mon tableau je conserve toujours le groupe des comptes, les N° de compte. que mes formule ce fasse automatique en ce qui concerne les débit-crédit ou l'inverse. et que si je séléctionne l'entreprise R je vois tout sauf les compte non pris en compte (dit compte exclus) et qu'il n'interfére pas dans les calculs.

    C'est super compliqué pour moi car de très nombreuse condition. L'idéal est de tout avoir dans le script du chargement.

    J'espère que ce n'est pas trop demander si je te demande un petit peu d'aide pour la rédaction du script.


    Très cordialement,
    Pierre

    Merci par avance pour votre soutient.

  3. #23
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Dans ta table des faits, Général = d60721200. Or dans ta table des comptes, Général = 60721200 sans le "d" ce qui explique que le lookup ne trouve rien !

    Arrange-toi pour avoir une table Comptes avec le "d" ou le "r" sur Général. De cette manière on pourra exclure sur une société seulement, ou changer de sens de la même manière.

    Dans ta table des faits, tu load mid(Général,2) as Compte. De cette manière, dans tes graphiques, il suffira d'utiliser Compte en dimension pour englober les 2 sociétés ...

  4. #24
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    je viens de refaire ma table comptes (tu du moins mon fichier excel) maintenant elle se présente ainsi

    Général Libellé Exclure Sens
    r40100000 N D
    r41100000 N D


    j'ai refait mon script avec un
    directory
    comptes
    load

    ce qui donne ce ceci sur le chargement de la table comptes :

    SET ThousandSep='*';
    SET DecimalSep=',';
    SET MoneyThousandSep='*';
    SET MoneyDecimalSep=',';
    SET MoneyFormat='#*##0,00 €;-#*##0,00 €';
    SET TimeFormat='hh:mm:ss';
    SET DateFormat='DD/MM/YYYY';
    SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';
    SET MonthNames='janv.;févr.;mars;avr.;mai;juin;juil.;août;sept.;oct.;nov.;déc.';
    SET DayNames='lun.;mar.;mer.;jeu.;ven.;sam.;dim.';
    //table des instruction chargé sous la table comptes
    Directory;
    comptes:
    LOAD Général,
    Libellé,
    Exclure,
    Sens,
    E,
    F
    FROM
    [Exclu RP.xlsx]
    (ooxml, embedded labels, table is compte);


    // ON charge les données de "D".
    Faits:
    LOAD
    rowno() AS ID,
    Date,
    mid(Général,2) AS Compte, // ON enlève le "d" pour être homogène entre tous les clients.
    Libellé,
    Débit,
    Crédit,
    'Davinci' AS Entreprise, // ON précise que c'est l'entreprise "D".
    Lookup('Exclure','Général',Général,'Comptes') as EcrExclue, // exclusion de certain compte
    Lookup('Sens','Général',Général,'Comptes') as EcrSens // sens de calcul en fonction du compte
    FROM
    [C:\Users\savannah\Desktop\QVCOMPTA\ECRITURES DA VINCI.xlsx]
    (ooxml, embedded labels, table is CONVERT)
    WHERE isnull(Date) = false() and Lookup('Exclure','Général',Général,'Comptes')<>'O'; // ne tien pas compte des comptes avec O

    ;

    // ON charge les données de "R".
    CONCATENATE (Faits)
    LOAD
    rowno() AS ID,
    Date,
    Général AS Compte,
    Libellé,
    Débit,
    Crédit,
    'Reptiles_Planet' AS Entreprise, // ON précise que c'est l'entreprise "R".
    Lookup('Exclure','Général',Général,'Comptes') as EcrExclue, // exclusion de certain compte
    Lookup('Sens','Général',Général,'Comptes') as EcrSens // sens de calcul en fonction du compte
    FROM
    [Nouveau dossier\ECRITURES COMPTABLES RP 01 062013NVX.xlsx]
    (ooxml, embedded labels, table is CONVERT)
    WHERE isnull(Date) = false() and Lookup('Exclure','Général',Général,'Comptes')<>'O';
    ;

    // Pour chaque ligne, ON rajoute :
    // - le groupe de compte : les 3 premiers caractères
    // - des précisions sur la date
    LEFT JOIN (Faits)
    LOAD
    ID,
    LEFT(Compte, 3) AS [Groupe compte],
    year(Date) AS Année,
    month(Date) AS Mois,
    day(Date) AS Jour
    RESIDENT Faits;
    toujours pas de changement est si je visualise uniquement général dans les selectionneur de champs les lettre r et d apparaissent bien.

    Help me xd

  5. #25
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Voici un fichier que je me suis fait.
    Les fichiers excel doivent être dans c:\temp pour le rechargement (ou il faut modifier le répertoire dans le script)
    Fichiers attachés Fichiers attachés

  6. #26
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Je suis désolé mais le fichier *qcw je ne peut pas l'ouvrir j'ai pas de QV sous licence.

    Peut tu me mettre le script en *.txt et me faire des screen des feuilles si il y en avais stp.

    Dsl

  7. #27
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    SET ThousandSep='*';
    SET DecimalSep=',';
    SET MoneyThousandSep='*';
    SET MoneyDecimalSep=',';
    SET MoneyFormat='#*##0,00 €;-#*##0,00 €';
    SET TimeFormat='hh:mm:ss';
    SET DateFormat='DD/MM/YYYY';
    SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';
    SET MonthNames='janv.;févr.;mars;avr.;mai;juin;juil.;août;sept.;oct.;nov.;déc.';
    SET DayNames='lun.;mar.;mer.;jeu.;ven.;sam.;dim.';
     
    SET DayNames='lun.;mar.;mer.;jeu.;ven.;sam.;dim.';
     
    Comptes:
    LOAD Général,Libellé,Exclure,Sens
    FROM C:\Temp\comptes.xls (biff, embedded labels, table is [comptes$]);
     
    Faits:
    LOAD rowno() AS ID,Date as DatePce,Général,Libellé as LibEcriture,Débit,Crédit,
         'Davinci' AS Entreprise
    FROM C:\temp\ECRITURES_DAVINCI.xls (biff, embedded labels, table is [CONVERT$])
    WHERE Lookup('Exclure','Général',Général,'Comptes')<>'O';
     
    LOAD rowno() AS ID,Date as DatePce,Général,Libellé as LibEcriture,Débit,Crédit,
         'Reptiles_Planet' AS Entreprise
    FROM [C:\temp\ECRITURES_REPTILES.xls] (biff, embedded labels, table is [CONVERT$])
    WHERE Lookup('Exclure','Général',Général,'Comptes')<>'O';
     
    // Pour chaque ligne, ON rajoute :
    // - le groupe de compte : les 3 premiers caractères
    // - des précisions sur la date
    LEFT JOIN (Faits)
    LOAD ID,Mid(Général,2) as Compte, Mid(Général,2, 3) AS [Groupe compte],
    If(Lookup('Sens','Général',Général,'Comptes')='D',Débit-Crédit,Crédit-Débit) as Montant,
    year(DatePce) AS Année,
    month(DatePce) AS Mois,
    day(DatePce) AS Jour
    RESIDENT Faits;
    Pour le graphique j'ai juste fait un tableau simple avec Compte en dimension et deux expressions : Sum(Débit-Crédit) et sum(Montant)
    Le compte 120000 est exclus, et la zone montant = D-C pour les comptes 6 et C-D pour les comptes 7

  8. #28
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Parfait ce jolie script,

    Maintenant j'ai un soucis,

    Il me créer des groupe compte que je n'es pas.

    je te joint les fichiers le CH represente ce que le script me sort quand je part sur un graph simple avec sum montant

    tu as le fichier instruction qui lui reprend tout mes numéro de compte.

    Sa déconne que sur la societé R
    Fichiers attachés Fichiers attachés

  9. #29
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Apparemment, ton fichier des écritures contient des comptes qui n'ont pas été définis dans le fichier instruction. C'est dû, et ce n'est pas une mauvaise chose, au where lookup<>'O'.
    Si un compte n'est pas trouvé dans instruction, lookup retourne une valeur nulle, qui est différente de 'O' donc qui est prise en compte.
    Deux solutions :
    1) tu remplace le where avec un lookup(exclure)='N'
    2) tu renseigne tous les comptes manquants dans le fichier instruction, avec exclure=O

    La différence consiste dans le cas où un nouveau compte apparaîtrait dans 6 mois :
    Avec l'option 1, le compte sera exclus, et ne sera peut-être pas remarqué.
    Avec l'option 2, le compte sera traité et en voyant le nouveau compte dans les graphiques, on saura qu'il y a un nouveau compte qu'il suffira de renseigner dans instruction.xlsx, pour l'exclure ou non ...

    Note: Idem pour Montant : Si le compte n'est pas renseigné, la règle devient Crédit-Débit ...

  10. #30
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2013
    Messages : 51
    Points : 22
    Points
    22
    Par défaut
    Maintenant derniére question est tous mes soucis vont ^^etre reglé.

    Comment puis je dire à QV,quand tu as un général qui est 60721200 tu le renome en bonjour
    un général en 9011800 tu le renome en salut

    quand tu as un groupe compte 607 tu me l'appel banane un 608 pomme un 609 poire ect ...

    sa doit etre fesable avec encore une table je pense

  11. #31
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Oulah !

    Pour les comptes généraux, on a déjà une colonne Libellé dans le fichier Comptes.xls. Il suffit d'utiliser Libellé comme dimension et hop !
    SAUF QUE si un compte n'est pas saisi dans le fichier Comptes.xls ( et qu'on aie utilisé le where lookup(exclure)<>'O' ) la zone Libellé sera nulle.
    - Tous les comptes sans libellé n'en feront plus qu'un, sans libellé
    - Si, dans le graphique, on indique de ne pas afficher les valeurs nulles, ces comptes seront exclus du graphique

    Pour les groupes de compte, il faudrait créer un fichier Groupes.xls avec 2 colonnes :
    Une appelée comme dans le join load ( [Groupe compte] dans mon exemple)
    Une appelée LibelléGroupe par exemple.

    Dans le script, il suffira alors d'insérer un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Groupes:
    LOAD [Groupe compte],LibelléGroupe
    FROM C:\Temp\groupes.xls (biff, embedded labels, TABLE IS [groupes$]);
    On utilisera alors LibelléGroupe dans les graphiques.
    Si un groupe n'est pas saisi dans le fichier, on aura bien sûr le même problème que pour les comptes généraux.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Double somme (SUM) entre deux tables ?
    Par kibodio dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/02/2005, 22h26
  2. PROBLEME DE JOINTURE ENTRE DEUX TABLE
    Par DarkMax dans le forum Langage SQL
    Réponses: 13
    Dernier message: 13/01/2005, 15h11
  3. Transfert entre deux tables
    Par nyarla01 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 18/10/2004, 14h36
  4. [VB.NET] ComboBox lien entre deux tables
    Par VDB1 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 15/07/2004, 12h15
  5. Jointure entre deux tables et résultat
    Par Asdorve dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2004, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo