Met behulp van een transformatie te berekenen 5 laatste waarden binnen een SQL-query

Hier is een van mijn recente interessante taken:

Bereken wat metrics alleen voor de items die in hoge vraag. Een object wordt in hoge vraag ", indien de waarde van de verkopen groter waren dan de constante X in elk van de laatste 5 maanden (inclusief de huidige maand).

Oplossing

Eerste opnieuw vaststellen van taken:

Een artikel A is geldig in de maand M als een artikel met de grote vraag, indien de Abverkäufe in ieder van de laatste 5 maanden (inclusief de lopende maand) groter waren een vaste constante X (bv. is X = 100). We willen te vinden en in een rapport vertegenwoordigen zo efficiënt mogelijk alle dergelijke combinatie A en M (die we zo nodig dan een Metric filter om later te kunnen gebruiken).

Hier mijn oplossing is met behulp van slechts een transformatie. Ik zie het voordeel van deze oplossing in het feit dat slechts een keer de over het algemeen zeer grote tafel een feit toegangen.

Voor alle voorbeelden die ik zal gebruiken volgens de standaard geïnstalleerde het project in mijn blog MicroStrategy Tutorial. Daarom kunt u mijn voorbeelden gemakkelijk te kopiëren en uit te proberen. Daarnaast is het mogelijk om verschillende oplossingen van een probleem direct te vergelijken.

Zoals ik al verraden, gebruik ik een transformatie in mijn oplossing. Daarom is een Transformaties oog moet worden gedefinieerd als de eerste. De gegevensbron voor het project "MicroStrategy Tutorial" is een Access-database TUTORIAL_DATA_7200.mdb.

We zetten op de volgende Weergave:

SELECT t1.MONTH_ID, t2.MONTH_ID AS PREV_MONTH_ID, DateDiff ( "m", t2.MONTH_DATE, t1.MONTH_DATE) AS MONTH_DIFF
UIT LU_MONTH als T1, LU_MONTH AS t2
WHERE (((DateDiff ( "m", t2.MONTH_DATE, t1.MONTH_DATE)) tussen 0 en 4))
ORDER BY t1.MONTH_ID, t2.MONTH_ID;

De VB-functie DateDiff levert hier het aantal volledige maanden, die liggen tussen de overhandigd datum waarden. De uitgaven van het bekijken ziet er dan ongeveer zo:

Image 1

Wij wijzen de View "MONTH_TO_5_LAST_MONTHS". Nu is het bekijken in het magazijn catalogus is ingevoerd, vervolgens over de nieuwe logische tabel worden de volgende objecten zijn gedefinieerd:

Transformatie "belasting van 5 Months

Image 2

Kenmerk "Maanden Diff"

Month Diff

Month Diff

Naast het kenmerk formulier Maand @ ID automatisch moet worden uitgebreid tot het gebied MONTH_ID de nieuwe tabel:

Month@ID

Nu willen we bouwen aan een Metrik, die "een beetje-kaart met 5 cijfers vertegenwoordigt" om het formulier *****. Elk sterretje komt overeen daardoor een maand: de linkste sterretje verwijst naar de maand in het rapport aangemerkt lijn, de volgende sterretje naar de vorige maand (ten opzichte van de lijn beschouwd verslag), enz.

In plaats van elk sterretje willen we de vermelding "geven aan X" indien de Abverkaufswert van het artikel waren groter in het rapport aangemerkt lijn in dat sterretje positie overeenkomstige maand 100. Anders geven we aan in plaats van de asterisk de indicatie O.

Indien dus voor een artikel in de maand waarin het bit-kaart is aangegeven tot 200.804 "OXXOO, wat betekent dat in dit artikel had de Abverkaufswerte alleen in de maanden 200.803 en 200.802 meer grotendeels 100. Volgens de definitie van de vaststelling van de taken van een dergelijk artikel niet zou hebben grote vraag in de maand 200.804. "Alleen de combinaties van de artikelen en maanden komen overeen met de grote vraag, waarvoor de bit-kaart is berekend.

En hier de definitie van de Metriks is bit-map verkoop> 100 in De belasting 5 maanden:

Metric condition

De dimensionaliteit en Konditionalität van de Metrik worden niet gewijzigd. Alleen de transformatie "belasting van 5 maanden" krijgen het Metrik.

De formule van de Metrik ziet er als volgt uit:

ApplyAgg ( "max (IIF ((# 0 = 0 en # 1> 100), 'X', 'O')) & max (IIF ((# 0 = 1 en # 1> 100), 'X', ' O ')) & max (IIF ((# 0 = 2 en # 1> 100),' X ',' O ')) & max (IIF ((# 0 = 3 en # 1> 100),' X ', 'O')) & max (IIF ((# 0 = 4 en # 1> 100), 'X', 'O'))"; [Maanden GK] @ ID; [verkochte eenheden])

Vanwege de functie moet u een ApplyAgg de logica in VisualBasic syntaxis (IIF voor de konditionale & onderzoek en voor de Konkatenierung). Waarschijnlijk is het echter ook zou functioneren zonder ApplyAgg functie, met de functies MicroStrategy IF en concat. Logische manier moeten echter genereren MicroStrategy in dit geval een zeer vergelijkbare Query.

Hier is screenshot van een verslag, dat de metrische bit-map Sales> 100 toepassingen in de belasting 5 maanden:

Final Report

Het oorspronkelijke artikel in de Duitse taal kan hier gelezen worden.

Oplossing voor niet in staat om tabellen toe te voegen in Pakhuis Winkel

Probleem: niet in staat om tabellen toevoegen / zicht op het schema in Warehouse Winkel

Fout: "Fout bij toevoegen Table (s) aan het schema. Deze sleutel is al gekoppeld aan een element van deze collectie '

Oplossing in MSTR 9:

1) Open 'Architect',

2) Klik met de rechtermuisknop de tabel <tabelnaam>

3) Voeg aan het project

4) eenmaal zijn toegevoegd, Rechts tabel in linkerdeelvenster en update-structuur

5) Opslaan en sluiten (het zal vragen voor Update-schema, dus hetzelfde doen

6) Open nu Warehouse Winkel

7) kunt u de tabel / view toegevoegd aan schema

Object Tracking Tool - met enkele updates

Na lange kloof posting 'Object Tracking Tool' met een aantal updates.

1) Het instrument getest in het systeem waar ik-Server is geïnstalleerd (niet kreeg een kans om te testen zonder I-Server)

2) Getest in XP, 2003, Vista, 7

3) Voor het testen met behulp van zelfstudie, het object-ID voor sommige objecten kunnen lijkt hetzelfde ... maar eigenlijk is er een verschil tussen elk nummer ID. Denk niet dat het herhalen van dezelfde ID.

4) Alle suggesties / opmerkingen zijn welkom

Let op: Binnenkort de tool zal ook worden geïntegreerd met een andere tool.

Download de tool hier.

Opmerking: Deze toepassing wordt geleverd "as is" en ik wijzen alle garanties, uitdrukkelijk of impliciet, met betrekking tot alle items voorzien, inclusief alle garanties van verkoopbaarheid, geschiktheid voor een bepaald doel, nauwkeurigheid, systeemintegratie, titel, voldoende kwaliteit en niet-inbreuk. Ik garanderen niet dat het gebruik van de geleverde producten of enig gedeelte daarvan zal worden ononderbroken of vrij van fouten, of dat de verstrekte producten of enig gedeelte daarvan zal voldoen aan een behoefte of eis van licentienemer.

Interessante kwestie Metadata

In MSTR 9, is er een nieuwe functie genaamd multisource waar de gebruiker Meerdere OB Zo kan verbinden.

We gebruikten dezelfde en als gevolg van nieuwe licentie model we gedwongen worden om terug naar enkele OB bijvoorbeeld veranderen. Dus wees alle DB bijvoorbeeld om dezelfde ODBC-verbinding (logisch zijn een DB-verbinding)

Probleem: Hoewel alle DB bijvoorbeeld wijzen op dezelfde ODBC, MSTR gezien het feit dat als meerdere DB aanleg. Dus als gebruiker zonder multisource licentie inloggen op de MSTR en proberen op een verslag lopen, gooit zij een fout te zeggen dat 'dit is vereist multisource licentie'. Interessant ding is, de tabellen voor dit verslag zijn afkomstig uit een enkele DB aanleg.

Oplossing: Het is van essentieel belang geworden kwestie tijdens SIT te wijten aan licentie cliënt verandert ... blah .... Blah.

Took beetje risico optie en ook dat is de enige oplossing ... Veranderende OB aanleg voor alle attributen in Metadata tabellen. (Alternate optie, bewerken alle attributen en veranderen de tafel te wijzen op enkele OB bijvoorbeeld die enorme taak is - [400 attributen].

Heeft enkele analyse op MD tabellen, relaties, etc ... ik alle DB bijvoorbeeld 32-bits veranderd ID bij enkele OB bijvoorbeeld 32-bits-ID (moeten heel voorzichtig zijn bij het verwijderen van de rijen, het veranderen van de waarden in de kolom Metadata OB.

Ik ben nog steeds bezig documentatie over het wijzigen van DB bijvoorbeeld in Metadata rechtstreeks en samen met dat van plan document of een nieuw instrument voor " 'zoeken en vervangen object in ieder definitie".

Als iemand komt kruis dit soort zaken als 'Object ID kan niet worden gevonden "en ook zaken als SCANMD, ARTS MD niet kunnen oplossen, zullen proberen om u te helpen hetzelfde te lossen.

Binnenkort zal het document en gereedschap post voor hetzelfde ... ...