Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Prendre valeur possible au chargement

Bonjour,

J’ai une demande d’un de mes services sur une requête, en effet ils ne veulent pas voir les antériorités sur un même exercice je m’explique :

Dans une de mes tables j’ai un lieu de stockage (LIEUST), un produit peut avoir deux lieux de stockage différents dans une même années et mes collègues veulent afficher seulement le dernier LIEUST (celui dans lequel le produit est présent lorsque je consulte la requête) et ceci est valable pour plusieurs autres champ.

Est-ce qu’il y a un set ana permettant d’afficher le dernier champs ? celui valable au moment du lancement de la requête ?

Par avance merci pour votre aide

Bien cordialement

Labels (1)
7 Replies
flochi75
Creator III
Creator III

Bonjour Romaric,

y a t'il dans ta table un champ date qui pourrait servir d'élément discriminant pour déterminer le dernier lieu de stockage ?

dans ce cas, dans le script il faudrait créer un champ "dernier_lieu" dans le style :

ma_table:

load *,

lieu as max_lieu //juste pour conserver le champ "lieu" : cette duplication servira à faire le script suivant...

from ma_source.xls;

load max_lieu,max(date) as maxdateparlieu

resident ma_table group_by max_lieu;

Ainsi, tu auras un champ qui identifie la dernière date par lieu : il te suffiras alors d'utiliser ce champ dans ton tableau pour afficher seulement le dernier lieu...

Cordialement,

Florent.

Not applicable
Author

Bonjour,

Merci pour vos retours :

J'ai ces champs la dans ma table :

LOAD

      UFMAG                                                as UFMAG_LOT,

      ARMOIRE                                            as ARMOIRE_LOT,

      CODPRO                                            as @CLE_CODPRO_LOT,

      LOT                                                as LOT_LOT,

      LOT                                                as LOT_LOT_MAX,

      DATPEREM                                            as DATEPREM_LOT,

      QTEENT                                            as QTEENT_LOT,

      QTESOR                                            as QTESOR_LOT,

      SERIENUM                                            as SERIENUM_LOT,

      DATCREA                                            as DATCREA_LOT,

     //DATCREA                                            as DATCREA_LOT_MAX,

     //EXERCREA                                            as EXERCREA_LOT_MAX,

      EXERCREA                                            as EXERCREA_LOT

FROM

[..\ENTREPOT\HEXAGONE_CREA\HEPROLOT.qvd]

(qvd);


@CLE_CODPRO_LOT LIBLONG LOT_LOT DATCREA_LOT
S116015 IMMUNO ANTI HB 100UI/1ML (TRACABILITE) 10L0258530/07/2010 00:00:0026
10L0448104/08/2010 00:00:0026
10L1008418/03/2011 00:00:0026
11L0075231/05/2011 00:00:0026
12L0108929/03/2012 00:00:0026
12L0378401/06/2012 00:00:0026
12L0941805/12/2012 00:00:0026
13L0190418/06/2013 00:00:0026
13L0232319/03/2013 00:00:0026
13L1156706/01/2014 00:00:0026
14L0459506/05/2014 00:00:0026
15L0001004/03/2015 00:00:0026
15L0548807/09/2015 00:00:00

26

Voici le résultat obtenus

Pour cet exemple je souhaiterai que la table ne me ressorte que l'enregistrement du 07/09/2015 (le dernier) quel script dois-je mettre en place ?

Merci

Cordialement

Romaric

flochi75
Creator III
Creator III

ok, il te suffit d'adapter le script que je t'ai joins précédemment :

Ma_Table :

LOAD

      UFMAG                                                as UFMAG_LOT,

      ARMOIRE                                            as ARMOIRE_LOT,

      CODPRO                                            as @CLE_CODPRO_LOT,

      LOT                                                as LOT_LOT,

      LOT                                                as LOT_LOT_MAX,

      DATPEREM                                            as DATEPREM_LOT,

      QTEENT                                            as QTEENT_LOT,

      QTESOR                                            as QTESOR_LOT,

      SERIENUM                                            as SERIENUM_LOT,

      DATCREA                                            as DATCREA_LOT,

     //DATCREA                                            as DATCREA_LOT_MAX,

     //EXERCREA                                            as EXERCREA_LOT_MAX,

      EXERCREA                                            as EXERCREA_LOT

FROM

[..\ENTREPOT\HEXAGONE_CREA\HEPROLOT.qvd]

(qvd);


load LOT_LOT_MAX,max(DATCREA_LOT) as maxdateparlot

resident Ma_Table group_by LOT_LOT_MAX;

ça devrait marcher...

Florent

maxgro
MVP
MVP

RESULT

1.png

SCRIPT

A:

LOAD @CLE_CODPRO_LOT,

     LIBLONG,

     LOT_LOT,

     DATCREA_LOT,

     F5

FROM

[https://community.qlik.com/thread/199053]

(html, codepage is 1252, embedded labels, table is @1);


Right Keep (A)

LOAD

  @CLE_CODPRO_LOT,

    LIBLONG,

//    LOT_LOT,

    Timestamp(max(DATCREA_LOT)) as DATCREA_LOT

Resident A

Group By

  @CLE_CODPRO_LOT,

    LIBLONG

//    LOT_LOT

flochi75
Creator III
Creator III

Bonjour Romaric,

Tu as pu trouver la solution ?

Not applicable
Author

Bonjour Florent

Oui oui c'est bon

Merci

flochi75
Creator III
Creator III

super !