Utilizzando una trasformazione per il calcolo 5 ultimi valori all'interno di una query SQL

Ecco uno dei miei ultimi compiti interessanti:

Calcolare alcuni parametri solo per gli elementi che sono molto richiesti. Un elemento è "la richiesta è alta", se il suo valore delle vendite sono state superiori al X costante in ogni degli ultimi 5 mesi (compreso il mese in corso).

Soluzione

Ancora la prima definizione di compiti:

Un articolo una è valido nel mese M come un articolo con la domanda di grandi dimensioni, se la sua Abverkäufe in ognuno degli ultimi 5 mesi (compreso il mese in corso) sono stati grandi a tempo determinato X costante (ad esempio, è stato X = 100). Vogliamo trovare e in una relazione di rappresentare nel modo più efficiente possibile, tutte a tale combinazione di A e M (che, se necessario, di un filtro metrica da utilizzare in seguito per essere in grado).

Ecco la mia soluzione è usare un solo trasformazione. Io vedo il vantaggio di questa soluzione nel fatto che solo una volta al tavolo in genere molto grandi realtà si accede.

Per tutti gli esempi userò secondo lo standard installato il progetto nel mio blog MicroStrategy Tutorial. Quindi si può facilmente copiare i miei esempi e provare. Inoltre è possibile mettere a confronto diverse soluzioni di un problema direttamente.

Come ho già tradito, io uso una trasformazione nella mia soluzione. Quindi una visione Transformations deve essere definito come il primo. La fonte dei dati per il progetto "MicroStrategy Tutorial" è una base di dati ACCESSO TUTORIAL_DATA_7200.mdb.

Abbiamo messo sul seguente vista:

SELECT t1.MONTH_ID, t2.MONTH_ID AS PREV_MONTH_ID, DateDiff ( "m", t2.MONTH_DATE, t1.MONTH_DATE) AS MONTH_DIFF
DA LU_MONTH AS T1, LU_MONTH come T2
WHERE (((DateDiff ( "m", t2.MONTH_DATE, t1.MONTH_DATE)) tra 0 e 4))
ORDER BY t1.MONTH_ID, t2.MONTH_ID;

VB-Funzione DateDiff forniture qui il numero di mesi intero, che si trovano tra la consegna valori di data. Le spese di Vista poi guarda su in modo da:

Image 1

Noi designare la Vista "MONTH_TO_5_LAST_MONTHS". Ora la vista nel catalogo Warehouse è importato, successivamente, sulla nuova tabella logica i seguenti oggetti sono definiti:

Trasformazione "5 mesi di carico"

Image 2

Attributo "Mesi Diff"

Month Diff

Month Diff

Inoltre il modulo di attributo Month @ ID dovrebbe essere estesa automaticamente al campo MONTH_ID la nuova tabella:

Month@ID

Ora vogliamo costruire una misurazione della, che "un po '-mappa con 5 cifre rappresenta" la forma *****. Ogni asterisco corrisponde quindi un mese: l'asterisco linkste si riferisce al mese in linea considerato relazione, l'asterisco accanto al mese precedente (rispetto alla linea considerata relazione), ecc

Al posto di ogni asterisco si vuole indicare la dicitura "a X", se il Abverkaufswert di questo articolo sono stati più grandi in linea considerato rapporto in quel mese posizione asterisco corrispondente 100. Altrimenti indicare al posto del asterisco le indicazioni per O.

Se quindi per un articolo nel mese il bit-map è indicato a 200.804 "OXXOO, ciò significa che questo articolo ha avuto l'Abverkaufswerte solo nel 200803 mese e 200.802 di più in gran parte 100. Secondo la definizione di impostazione di questi compiti un articolo che non avrebbe grande domanda nel mese 200.804. "Solo le combinazioni degli articoli e mesi corrispondono alla grande richiesta, per i quali il bit-map viene calcolata.

E qui la definizione di Metriks è bit-Sales mappa> 100 nel carico di 5 mesi:

Metric condition

La dimensionalità e Konditionalität della misurazione della non sono cambiati. Solo la trasformazione "5 mesi di carico" è la misurazione della assegnato.

La formula della misurazione della appare come segue:

ApplyAgg ( "max (IIF ((# 0 = 0 e # 1> 100), 'X', 'O')) & Max (IIF ((# 0 = 1 e # 1> 100), 'X', ' O ')) & Max (IIF ((# 0 = 2 e # 1> 100),' X ',' O ')) & Max (IIF ((# 0 = 3 e la # 1> 100),' X ', 'O')) & Max (IIF ((# 0 = 4 e # 1> 100), 'X', 'O'))"; [mesi SD] @ ID; [unità vendute])

A causa della funzione ApplyAgg uno deve entrare nella logica di sintassi VisualBasic (IIF per l'esame e konditionale e per la Konkatenierung). Probabilmente sarebbe funzione tuttavia anche senza ApplyAgg funzione, con le funzioni di MicroStrategy IF e Concat. Logico modo dovrebbe generare MicroStrategy tuttavia in questo caso una query molto simili.

Ecco schermata di una relazione, che utilizza il bit metrico-Sales mappa> 100 nel carico di 5 mesi:

Final Report

L'articolo originale in lingua tedesca può essere letto qui.

Soluzione non è in grado di aggiungere tabelle in magazzino Catalogo

Problema: non in grado di aggiungere le tabelle / viste allo schema in magazzino Catalogo

Errore: 'Errore durante l'aggiunta Table (s) allo schema. Questa chiave è già associata un elemento di questa collezione '

Soluzione in MSTR 9:

1) Architetto Open ',

2) Fare clic sulla tabella <nome

3) Aggiungere al progetto

4) una volta il suo aggiunto, Destra tabella riquadro sinistro e aggiornare la struttura

5) Salvare e chiudere (vi verrà chiesto di aggiornamento dello schema, in modo da fare la stessa cosa

6) Catalogo Warehouse Now open

7) si può vedere la tabella / vista aggiunta allo schema

Object Tracking Tool - con alcuni aggiornamenti

Dopo la lunga pausa distacco 'Object Tracking Tool', con alcuni aggiornamenti.

1) Lo strumento testato nel sistema in cui I-Server è installato (non ho la possibilità di provare senza I-Server)

2) Testato in XP, 2003, Vista, 7

3) Per i test utilizzando Tutorial, l'ID di oggetto per alcuni oggetti potrebbero sembra lo stesso ... ma in realtà c'è una differenza tra ciascun numero ID. Non date per scontato che il suo ripetere lo stesso ID.

4) Eventuali suggerimenti / commenti sono benvenuti

Nota: Presto il tool sarà integrato con qualche altro strumento anche.

Scarica lo strumento qui.

Nota: questa applicazione è fornito "così com'è" e io declinano qualsiasi garanzia, esplicita o implicita, nei confronti di tutti gli elementi forniti, comprese tutte le garanzie di commerciabilità, idoneità per uno scopo particolare, l'accuratezza, l'integrazione dei sistemi, il titolo, qualità soddisfacente e non violazione. Io non garantisce che l'uso degli elementi forniti o parte di esso sarà ininterrotto o esente da errori, o che gli elementi forniti o parte di esso sarà soddisfare qualsiasi esigenza o richiesta di licenza.

Interessante tema dei metadati

In MSTR 9, vi è una nuova funzionalità denominata multisourcing dove l'utente può collegare più istanza DB.

Abbiamo utilizzato lo stesso modello e grazie alla nuova licenza, siamo costretti a tornare alla singola istanza DB. Così abbiamo fatto tutte le istanze DB per la connessione ODBC stesso (logicamente la sua una connessione DB)

Problema: Anche se tutte le istanze DB punta al medesimo ODBC, MSTR considerando che, come istanza DB multipli. Così, quando l'utente senza effettuare il login licenza multisourcing al MSTR e tenta di eseguire un qualsiasi rapporto, si genera un errore dicendo che 'questo è necessaria la licenza multisourcing'. Cosa interessante è, le tabelle di tale relazione sono provenienti da DB singola istanza.

Soluzione: E 'diventato punto critico durante il SIT a causa di modifiche client di licenza ... bla .... Bla.

Ha preso po 'il rischio di opzione e, inoltre, che l'unica soluzione ... Cambiare DB grado per tutti gli attributi nelle tabelle dei metadati. (Opzione alternativa, modificare tutti gli attributi e modificare la tabella di puntamento per esempio DB unico compito è enorme - [400 attributi].

Ha fatto alcune analisi sulle tabelle MD, relazioni, ecc ... ho cambiato tutte le istanze DB 32 bit ID istanza DB unico a 32 bit ID (devono essere molto attenti durante l'eliminazione del file, cambiando i valori della colonna nel DB dei metadati.

Sto ancora facendo la documentazione su come modificare istanza DB dei metadati in modo diretto e con che la pianificazione di documento o nuovo strumento per " 'trovare e sostituire opporsi in ogni definizione".

Se qualcuno viene croce questo tipo di questioni come 'Object ID non può essere trovato', e anche questioni come SCANMD, MD medico non in grado di risolvere, cercherà di aiutarvi a risolvere lo stesso.

Presto pubblicheremo il documento e strumento per la stessa ... ...