Pagina 4 di 4

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Inviato: mar 13 apr 2021, 9:58
da elyfiora
Esatto.
Se un progetto ha più valori in quel mese, nel subtotale del mese deve sommare solo l'ultimo ovvero il più recente.
Il subtotale complessivo sarà la somma di tutti i valori più recenti di ciascun progetto nel mese.

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Inviato: mar 13 apr 2021, 10:28
da Enrico Galli
Prova un po' questo "mostro"... :lol: (Andrea90 intervieni tu per migliorare!)

Codice: Seleziona tutto

=IF ( ISFILTERED('CastProject'[Cast Project Name]);
	CALCULATE (
		CALCULATE (
			MAX ( 'Cast'[bFP] );
			LASTNONBLANK (
				'Cast'[Data];
				MAX ( 'Cast'[bFP] )
			)
		);
		FILTER (
			ALL ( 'Calendar'[data] );
			'Calendar'[data]
				< MAX ( 'Calendar'[data] )
		)
	);
	CALCULATE (
		SUMX(
			ADDCOLUMNS(
				VALUES('CastProject'[Cast Project Name]);
				"@maxbfp";
				CALCULATE (
					MAX ( 'Cast'[bFP] );
					LASTNONBLANK (
						'Cast'[Data];
						MAX ( 'Cast'[bFP] )
					)
				)
			);
			[@maxbfp]
		);
		FILTER (
			ALL ( 'Calendar'[data] );
			'Calendar'[data]
				< MAX ( 'Calendar'[data] )
		)
	)
)

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Inviato: mar 13 apr 2021, 10:56
da elyfiora
Complimenti! Funziona! Avevo capito che dovevo usare la SUMX ma non la configuravo bene e quindi non mi usciva.
Grazie infinite
Elisa

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Inviato: mar 13 apr 2021, 11:08
da Enrico Galli
In realtà funziona anche senza la prima parte del costrutto IF, mantenendo quindi solo:

Codice: Seleziona tutto

=
CALCULATE (
    SUMX (
        ADDCOLUMNS (
            VALUES ( 'CastProject'[Cast Project Name] );
            "@maxbfp";
                CALCULATE (
                    MAX ( 'Cast'[bFP] );
                    LASTNONBLANK (
                        'Cast'[Data];
                        MAX ( 'Cast'[bFP] )
                    )
                )
        );
        [@maxbfp]
    );
    FILTER (
        ALL ( 'Calendar'[data] );
        'Calendar'[data]
            < MAX ( 'Calendar'[data] )
    )
)
Confermi?

Conversione formula da DAX a SQL per il cubo di Datawarehouse

Inviato: mar 13 apr 2021, 11:34
da elyfiora
Si confermo, funziona ugualmente!
Grazie
Elisa