none
Dimension Attributes - Come leggere un valore di una proprieta' RRS feed

  • Domanda

  • Buongiorno a tutti.

    Uso SSAS 2014 BI EDITION.

    In un cubo VENDITE ho la classica dimensione di tipo tempo denominata CALENDARIO (contiene tutte le date...)

    Ho una gerarchia  CALENDARIODataAAAAMMGG che mi consente di navigare tra le date e scegliere una certa data.

    A livello di ETL ho creato sulla tabella da cui si basa la dimensione (TBLDate) , a fronte di ciascuna data anche campi (attributi) relativi allo stesso ANNO MESE GIORNO dello stesso tipo giorno dell'anno precedente.

    Es. per il record che contiene la data 13-03-2018 ho i seguenti attributi con i seguenti valori:

    Anno Data AA-1      2017

    Mese Data AA-1      3

    Giorno Data AA-1    14

    La mia necessita' sarebbe infatti quella di selezionare una data dalla dimensione CALENDARIO dalla gerarchia AAAAMMGG e :

    - Ottenere il venduto della data anno precedente stesso tipo giorno della stessa settimana

    -Ottenere il venduto da inizio anno alla data anno precedente stesso tipo giorno della stessa settimana

    -Ottenere il venduto da inizio mese alla data anno precedente stesso tipo giorno della stessa settimana

    Pensavo di usare le PROPERTIES ma incontro delle difficolta'...

    Pensavo di creare misure calcolate simile a questa per ottenere inizialmente il venduto della data anno precedente :

    CREATE
     MEMBER CURRENTCUBE.[Measures].[PrecedenteDataAA-1]

    AS

      '[Calendario].[DataAAAAMMGG].[GiornoVendita].&['
       +   [Calendario].[DataAAAAMMGG].currentmember.properties("Anno Data AA-1")
        +  ']&['
       +   [Calendario].[DataAAAAMMGG].currentmember.properties("Mese Data AA-1")   
        +  ']&['
           +   [Calendario].[DataAAAAMMGG].currentmember.properties("Giorno Data AA-1")   

        +   ']'   

    CREATE
     MEMBER CURRENTCUBE.[Measures].[ImportoVenduto_PrecedenteDataAA-1]

    AS

      ( [Measures].[PrecedenteDataAA-1],[Measures].[Importo Venduto] )

    Ma ottengo errori oppure valori non corretti e strani tipo 0 oppure ALL come se non leggesse bene i valori degli attributi.

    Allora ho provato ad usare non le PROPERTIES direttamente dell'attributo in questo modo :

    CREATE
     MEMBER CURRENTCUBE.[Measures].[PrecedenteDataAA-1]

    AS

      '[Calendario].[DataAAAAMMGG].[GiornoVendita].&['
       +   [Calendario].[Anno Data AA-1].currentmember.properties("NAME")
        +  ']&['
       +   [Calendario].[Mese Data AA-1].currentmember.properties("NAME")   
        +  ']&['
           +   [Calendario].[Giorno Data AA-1].currentmember.properties("NAME")   

        +   ']'   

    CREATE
     MEMBER CURRENTCUBE.[Measures].[ImportoVenduto_PrecedenteDataAA-1]

    AS

      ( [Measures].[PrecedenteDataAA-1],[Measures].[Importo Venduto] )

    In questo caso la misura .[Measures].[PrecedenteDataAA-1]  mi contiene correttamente il valore voluto ovvero

    [Calendario].[DataAAAAMMGG].[GiornoVendita].&[2017]&[3]&[14]

    ma poi mi da errore la misura [ImportoVenduto_PrecedenteDataAA-1] non gli piace questa sintassi :::

     ( [Measures].[PrecedenteDataAA-1],[Measures].[Importo Venduto] )

    Sicuramente STO COMMETTENDO UNO O PIU' ERRORI...e chiedo scusa...

    Qualcuno mi riesce ad aiutare ????

    Grazie mille.

    mercoledì 14 marzo 2018 11:42

Risposte

Tutte le risposte

  • Buon pomeriggio.

    Grazie Edoardo.

    Essendo la prima volta che scrivevo una domanda in questo blog, non avevo visto la tua risposta.

    Leggo i link che mi hai gentilmente allegato.

    Intanto grazie,,,al limite ti riscrivo.

    Grazie ancora !!!

    giovedì 29 marzo 2018 15:31
  • Buongiorno Edoardo ...

    Ho letto i link forniti nella tua email ma non riesco ancora  a risolvere il problema.

    Mi basterebbe capire come scrivere questa espressione MDX ...

    CREATE
     MEMBER CURRENTCUBE.[Measures].[PrecedenteDataAA-1]

    AS

      '[Calendario].[DataAAAAMMGG].[GiornoVendita].&['
       +   [Calendario].[Anno Data AA-1].currentmember.properties("NAME")
        +  ']&['
       +   [Calendario].[Mese Data AA-1].currentmember.properties("NAME")   
        +  ']&['
           +   [Calendario].[Giorno Data AA-1].currentmember.properties("NAME")   

        +   ']'   

    CREATE
     MEMBER CURRENTCUBE.[Measures].[ImportoVenduto_PrecedenteDataAA-1]

    AS

      ( [Measures].[PrecedenteDataAA-1],[Measures].[Importo Venduto] )

    In questo caso la misura .[Measures].[PrecedenteDataAA-1]  mi contiene correttamente il valore voluto ovvero ad esempio :

    [Calendario].[DataAAAAMMGG].[GiornoVendita].&[2017]&[3]&[14]

    che e' l'espressione che indetifica un membro della dimensione CALENDARIO e gerarchia DataAAAAMMGG ...

    ma poi mi da errore la misura [ImportoVenduto_PrecedenteDataAA-1] non gli piace questa sintassi :::

     ( [Measures].[PrecedenteDataAA-1],[Measures].[Importo Venduto] )

    Probabilmente devo usare la funzione STRTOMEMBER ????

    Grazie comunque e buone FESTE  !!!!

    venerdì 30 marzo 2018 09:13

  • Probabilmente devo usare la funzione STRTOMEMBER ????

    Grazie comunque e buone FESTE  !!!!

    credo che ci stiamo avvicinando...

    vedi qui

    https://www.iccube.com/support/documentation/mdx/StrToMember.php

    e soprattutto gli esempi...


    Edoardo Benussi
    Microsoft MVP - Cloud and Datacenter Management
    e[dot]benussi[at]outlook[dot]it

    martedì 3 aprile 2018 09:04
    Moderatore
  • Buongiorno Edoardo.

    Intanto grazie per la pazienza mostrata nel leggere i miei posts.

    Ho letto gli esempi circa la funzione STRTOMEMBER ma ancora non sono riuscito a calcolare l'espressione MDX ...

    Ho creato due misure Misura1 ed Misura2

    Misura1:'[Calendario].[DataAAAAMMGG].[GiornoVendita].&['
       +   [Calendario].[Anno Data AA-1].currentmember.properties("NAME")
        +  ']&['
        +   [Calendario].[Mese Data AA-1].currentmember.properties("NAME")
        +  ']&['
    +   [Calendario].[Giorno Data AA-1].currentmember.properties("NAME")
           +   ']'   

    Questa misura funziona correttamente e visualizza il membro correttamente

    [Calendario].[DataAAAAMMGG].[GiornoVendita].&[2017]&[03]& [09]

    Misura2:

    STRTOMEMBER([Measures].[Misura1])   , [Meaures].[Importo Venduto])

    Questa misura invece mi segnala in Excel errore e non calcola nulla (#VALORE!)

    Mi sembra di fare tutto bene ma evidentemente no...

    Grazie.

    giovedì 5 aprile 2018 12:58
  • ti consiglio di leggere attentamente anche questi documenti

    https://docs.microsoft.com/it-it/sql/mdx/mdx-data-definition-create-member

    https://docs.microsoft.com/en-us/sql/mdx/expressions-mdx?view=sql-analysis-services-2017

    per verificare che tu non abbia trascurato qualche particolare importante nella definizione delle tue mdx.


    Edoardo Benussi
    Microsoft MVP - Cloud and Datacenter Management
    e[dot]benussi[at]outlook[dot]it

    mercoledì 18 aprile 2018 14:37
    Moderatore