Conversione formula da DAX a SQL per il cubo di Datawarehouse L’argomento è risolto

SQL Server, Oracle, MySQL...

elyfiora
Messaggi: 26 | Topic creati
Iscritto il: mer 7 apr 2021, 19:39
Ringraziato: 1 volta

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Messaggio 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
Allegati
LastValue.xlsx
(215.45 KiB) Scaricato 71 volte


Avatar utente

Andrea90
Messaggi: 2193 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 666 volte
Contatta:

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Messaggio 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
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link
Avatar utente

Enrico Galli
Messaggi: 890 | Topic creati
Iscritto il: dom 28 giu 2020, 19:03
Luogo: San Giovanni in Persiceto (BO)
Ringraziato: 325 volte
Contatta:

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Messaggio 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: )
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione

Autore del topic
elyfiora
Messaggi: 26 | Topic creati
Iscritto il: mer 7 apr 2021, 19:39
Ringraziato: 1 volta

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Messaggio 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
Avatar utente

Andrea90
Messaggi: 2193 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 666 volte
Contatta:

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Messaggio 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
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link

Autore del topic
elyfiora
Messaggi: 26 | Topic creati
Iscritto il: mer 7 apr 2021, 19:39
Ringraziato: 1 volta

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Messaggio 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

Autore del topic
elyfiora
Messaggi: 26 | Topic creati
Iscritto il: mer 7 apr 2021, 19:39
Ringraziato: 1 volta

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Messaggio 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
Avatar utente

Andrea90
Messaggi: 2193 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 666 volte
Contatta:

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Messaggio 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
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link

Autore del topic
elyfiora
Messaggi: 26 | Topic creati
Iscritto il: mer 7 apr 2021, 19:39
Ringraziato: 1 volta

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Messaggio 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
Avatar utente

Andrea90
Messaggi: 2193 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 666 volte
Contatta:

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Messaggio 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?
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link
Rispondi