Requête Microsft Query - Ventes et quantités vendues

Cette section est consacrée aux développements d'applications interfacées avec les logiciels Sage.

Modérateurs: Super-Apogea, Super Modérateur

Requête Microsft Query - Ventes et quantités vendues

de romaintak » Ven 23 Mar 2012 17:45

Bonjour,

J'utilise la ligne 100 de Sage pour PME-PMI 14.04 et excel 2003.

J'essaie de rassembler des informations sur les articles à partir de la Gescom: notamment les ventes et les quantités vendues sur une période donnée. J'arrive à extraire les quantités en stock, les prix d'achat et diverses informations "statiques" qui se trouvent dans notre base de donnée, et ce pour nos différents dépôts.

Par contre, je n'arrive pas à extraire les données "dynamiques", pour lesquelles j'ai besoin de définir une période ainsi qu'un type de recherche (ventes et quantités vendues). Je vois dans MsQuery des tables de type F_ABOPERIODE ou bien P_SOUCHEVENTE, mais je n'arrive pas à connecter les éléments.

Pour ces recherches, les états de la Gescom ne me donnent pas de résultats satisfaisants avec toutes les données nécessaires.

Cordialement,
Romain Danet
Dernière édition par romaintak le Jeu 29 Mar 2012 10:16, édité 1 fois.
Posteur néophyte
Posteur néophyte
 
Messages: 7
Inscription: Ven 23 Mar 2012 17:27

Re: Requête Microsft Query - Ventes et quantités vendues

de IMPERIAL » Ven 23 Mar 2012 20:52

Bonjour,

La F_DOCENTETE reprend toutes les infos des entêtes de documents

La F_DOCLIGNE reprend toutes les infos de lignes de documents

Tape dans la seconde pour trouver ton bonheur

Cdlt
IMPERIAL
Consultant Ligne 100 - INFOROPE
Le savoir c'est comme l'Amour. Si tu ne le partage pas, il devient inutile.

IMPERIAL
Avatar de l’utilisateur
Super Contributeur
Super Contributeur
 
Messages: 4661
Inscription: Jeu 6 Aoû 2009 12:39
Localisation: ROSNY SOUS BOIS

Re: Requête Microsft Query - Ventes et quantités vendues

de romaintak » Mar 27 Mar 2012 09:12

Merci Impérial Personne,

Je vais tester ca dès que je pourrai.

Cordialement,
Romain


EDIT:

C'est exactement ce que je voulais.

Merci!
Posteur néophyte
Posteur néophyte
 
Messages: 7
Inscription: Ven 23 Mar 2012 17:27

Re: Requête Microsft Query - Ventes et quantités vendues

de Kaiser » Jeu 25 Oct 2012 18:28

Le lien n'est pas facile a faire et ce pour 2 raisons:
1) Les souches sont éclatées en 3 Tables [P_SOUCHEVENTE], [P_SOUCHEACHAT] et [P_SOUCHEINTERNE]
2) Il y a un décalage de 1 entre [dbo].[F_DOCENTETE].[DO_Souche] et le [cbMarq] de ces 3 Tables.

La Solution:
Code: Tout sélectionner
SELECT e.[DO_Domaine], e.[DO_Type], e.[DO_Souche], s.[S_Intitule], e.[DE_No],
       MIN(e.[DO_Piece]) AS [Min_DO_Piece], MAX(e.[DO_Piece]) AS [Max_DO_Piece],
       MIN(e.[DO_Tiers]) AS [Min_DO_Tiers], MAX(e.[DO_Tiers]) AS [Max_DO_Tiers],
       MIN(e.[DO_Date]) AS [Min_DO_Date], MAX(e.[DO_Date]) AS [Max_DO_Date],
       COUNT('') AS [NbRecords]
FROM [dbo].[F_DOCENTETE] AS e
LEFT OUTER JOIN (SELECT 0 AS [DO_Domaine], [S_Intitule], [cbMarq]-1 AS [DO_SOUCHE] FROM [dbo].[P_SOUCHEVENTE]   WHERE [S_Valide]=1
       UNION ALL SELECT 1 AS [DO_Domaine], [S_Intitule], [cbMarq]-1 AS [DO_SOUCHE] FROM [dbo].[P_SOUCHEACHAT]   WHERE [S_Valide]=1
       UNION ALL SELECT 2 AS [DO_Domaine], [S_Intitule], [cbMarq]-1 AS [DO_SOUCHE] FROM [dbo].[P_SOUCHEINTERNE] WHERE [S_Valide]=1
         ) AS s ON s.[DO_SOUCHE]=e.[DO_SOUCHE]
GROUP BY e.[DO_Domaine], e.[DO_Type], e.[DO_Souche], s.[S_Intitule], e.[DE_No]
ORDER BY e.[DO_Domaine], e.[DO_Type], e.[DO_Souche], s.[S_Intitule], e.[DE_No];
Posteur néophyte
Posteur néophyte
 
Messages: 2
Inscription: Jeu 25 Oct 2012 18:19

Re: Requête Microsft Query - Ventes et quantités vendues

de Kaiser » Lun 29 Oct 2012 13:59

un petit erratum (j'ai oublié d'inclure [DO_Domaine] dans la jointure)
Code: Tout sélectionner
SELECT e.[DO_Domaine], e.[DO_Type], e.[DO_Souche], s.[S_Intitule], e.[DE_No],
       MIN(e.[DO_Piece]) AS [Min_DO_Piece], MAX(e.[DO_Piece]) AS [Max_DO_Piece],
       MIN(e.[DO_Tiers]) AS [Min_DO_Tiers], MAX(e.[DO_Tiers]) AS [Max_DO_Tiers],
       MIN(e.[DO_Date]) AS [Min_DO_Date], MAX(e.[DO_Date]) AS [Max_DO_Date],
       COUNT('') AS [NbRecords]
FROM [dbo].[F_DOCENTETE] AS e
LEFT OUTER JOIN (SELECT 0 AS [DO_Domaine], [S_Intitule], [cbMarq]-1 AS [DO_SOUCHE] FROM [dbo].[P_SOUCHEVENTE]   WHERE [S_Valide]=1
       UNION ALL SELECT 1 AS [DO_Domaine], [S_Intitule], [cbMarq]-1 AS [DO_SOUCHE] FROM [dbo].[P_SOUCHEACHAT]   WHERE [S_Valide]=1
       UNION ALL SELECT 2 AS [DO_Domaine], [S_Intitule], [cbMarq]-1 AS [DO_SOUCHE] FROM [dbo].[P_SOUCHEINTERNE] WHERE [S_Valide]=1
         ) AS s ON s.[DO_Domaine]=e.[DO_Domaine] AND s.[DO_SOUCHE]=e.[DO_SOUCHE]
Posteur néophyte
Posteur néophyte
 
Messages: 2
Inscription: Jeu 25 Oct 2012 18:19


Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité