Pagina 2 di 4

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Inviato: lun 12 apr 2021, 9:48
da elyfiora
Ciao, ti ringrazio moltissimo per la disponibilità. Ti allego un excel dove ho creato il modello e ho riportato il risultato atteso partendo da quei dati.
Sono a disposizione se ci sono domande.
Ringrazio di nuovo
Elisa

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Inviato: lun 12 apr 2021, 10:41
da Andrea90
Ciao elyfiora,

La Calendar Table falla sempre iniziare e chiudere con tutte le date relative ad un anno (o più). Quindi, in questo caso, arriva fino al 31/12/2021

Come seconda cosa attenta al modello dati in excel, quando l'ho aperto la relazione tra Calendar e la Fact table puntava nella direzione sbagliata.

Per fare quello che chiedi tu, con i dati che hai proposto, proverei a scrivere questa misura:

Codice: Seleziona tutto

=VAR DatesTable =
    DATESYTD ( 'Calendar'[data] )
VAR TempTable =
    CALCULATETABLE ( LASTDATE ( Cast[Data] ); DatesTable )
RETURN
    CALCULATE ( [#TotBfP]; TempTable; ALL ( 'Calendar'[data (Month)] ) )
La misura [#TotBfP] è un MAX del campo Bfp.

A presto,
Andrea

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Inviato: lun 12 apr 2021, 10:43
da Enrico Galli
Ottima soluzione Andrea, molto elegante :thumbup: (o comunque più elegante della mia che stavo per postare ma ormai me la tengo nascosta :lol: )

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Inviato: lun 12 apr 2021, 10:59
da elyfiora
Ciao, grazie per i suggerimenti. L'excel proposto era solo per farvi capire i dati, in quanto in realtà lavoro su Analysis Services.
Ad ogni modo se inserisco anche solo la prima parte VAR DatesTable
mi resituisce errore: "A table of multiple values was supplied where a single value is expected."
Grazie della collaborazione
Elisa

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Inviato: lun 12 apr 2021, 11:03
da Andrea90
Ciao Elisa,

Hai provato ad inserire quella misura nel tuo file excel o direttamente dentro Analysis Services?

Inoltre cosa intendi con inserito la prima parte? Il codice che ti ho fornito rappresenta un'intera misura, non devi spezzarlo in parti.

Andrea

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Inviato: lun 12 apr 2021, 11:22
da elyfiora
Ciao, l'ho inserito in Analysis Service dove ho la mia struttura e per farlo sono 'obbligata' a spezzarlo in tre misure diverse.
Elisa

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Inviato: lun 12 apr 2021, 12:14
da elyfiora
Io in Analysis service mi sono costruita qualcosa di questo tipo:

Codice: Seleziona tutto

test:=SUMX (
    SUMMARIZE (
        Cast,
        Cast[sk_CastProject],
     
        "myXBFP", 
            CALCULATE (
                CALCULATE (
                    MAX ( Cast[bFP] ),
                    LASTDATE ( Cast[data] )
                ),
            FILTER (ALL ( 'Calendar'[data]), 'Calendar'[data] <= MAX ( 'Calendar'[data] ) )
                
            )        
        
    ),
    [myXBFP]
)
ma non mi fa vedere per tutti i mesi l'ultimo valore di bFP ma mi fa vedere i bFP sono per la data corrispondente che trova nella tabella CAST.
Grazie

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Inviato: lun 12 apr 2021, 12:23
da Andrea90
Ciao elyfiora,

Non capisco perché tu non possa utilizzare VAR all'interno delle misure, ma in questo caso non è un problema.
Hai provato a condensare il tutto in un'unica formula?

Codice: Seleziona tutto

=
CALCULATE (
    [#TotBfP];
    CALCULATETABLE ( LASTDATE ( Cast[Data] ); DATESYTD ( 'Calendar'[data] ) );
    ALL ( 'Calendar'[data (Month)] )
)
A presto,
Andrea

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Inviato: lun 12 apr 2021, 12:41
da elyfiora
Ciao, ho consolidato tutto all'interno della stessa formula come da te indicato e non ho errori. Il fatto è che non mi fa vedere per tutti i mesi l'ultimo valore di bFP ma mi fa vedere i bFP sono per la data corrispondente che trova nella tabella CAST.
Grazie

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Inviato: lun 12 apr 2021, 12:44
da Andrea90
Il report che utilizzi è identico a quello che hai mostrato nel file excel? quindi solo con due dimensioni:
cast project name e date month?