Bonkster's SQL Server 2005 Blog
SQL Server 2005 & Google Tips

In datawarehouseland gebruiken we in onze DimDatum integers als primaire sleutels. Vaak komt het voor dat we een DateTime value moeten omzetten naar een integer om een join te kunnen maken met de DimDatum tabel. Dit kan met het volgende T-SQL Statement:

YEAR(<>)*10000+MONTH(<>)*100+DAY(<>) AS DateTimeToInteger

In <> zet je uiteraard de kolom die een datetime value bevat.

En andersom is ook weleens handig! Hier de functie:

CREATE FUNCTION [dbo].[FromDateIDtoDateValue](@Date varchar(8))
RETURNS datetime
AS
------------------------------------------------------------------------------
-- FromDateIDtoDateValue
-- To Translate a YYYYMMDD date to a valid datetime
-- Returning 00000000 as a NULL value

BEGIN
-- Declare the return variable here
DECLARE @FunctionResult datetime

IF isdate(@Date) = 1 SET @FunctionResult = cast(@Date as datetime)
Else SET @FunctionResult = null


RETURN(@FunctionResult)
END

 

SSIS Assign Value To Variable

Posted In: , . By Ronald Kraijesteijn

Een simpele vraag: hoe ken ik in SSIS2005 een waarde toe aan een variabele die afkomstig is uit een SQL-query? Het antwoord hierop is vrij eenvoudig maar je moet het net even weten.

Ik wil bijvoorbeeld de naam van een kracht ophalen uit een tabel en deze toekennen aan een variabele om deze later weer te kunnen gebruiken.


1. Maak een variabele aan, bijvoorbeeld "VolledigeNaam" type: string.


2. Maak een SQL-Task aan en maak een connectie aan.

3. Type je statement


4. Zet de resultset op "Single Row"


5. Ga naar het tabblad Result Set. Vul in de eerste kolom (Result Name) de waarde in die je aan de variabele wilt toekennen, exact zoals de query teruggeeft en kies in de tweede kolom de juiste parameter.


Als het goed is heb ik nu de variabele 'VolledigeNaam' gevuld met de naam van een kracht.

 

SQL Server 2008 CTP

Posted In: . By Ronald Kraijesteijn

Microsoft SQL Server 2008 CTP voor Februari is deze week uitgekomen. Het is een volledige release met alle functies :-)

"
The SQL Server team presents the future of SQL Server! SQL Server 2008 February CTP represents a significant leap in features, functionality, and improvements. Get your hands on the February CTP at the Download Center and then come back here to learn about all the features."

Meer informatie op deze site!


 

Grijze achtergrond bij Export Excel

Posted In: , . By Ronald Kraijesteijn

Verschijdene malen ontstond er tijdens het exporteren van rapportages die in Reporting Services 2005 waren gemaakt een grijze achtergrond in Excel. De reden is onverklaarbaar en ook op de technische forums was er weinig over te lezen tot de oplossing ergens opdook.


Voeg in de Report Designer een klein tekstboxje toe net boven je tabel of matrix. Zet de achtergrond van de textboxje op transparant en je probleem is opgelost! De oorzaak is niet bekend.

 

Ik stond vorige week voor een verassing toen ik in een dimensie binnen OLAP had ge-processed. Een van de attributen binnen deze dimensie was een veld van het type Boolean. Wat ik verwachtte te zien was een van de waardes: True, False of Unknown (de laatste voor lege velden). Tot mijn verbazing kreeg ik dit te zien: True, " " (leeg veld). Dit was dus niet wat ik verwacht had!

Na wat rondvragen was de oplossing vrij eenvoudig. SSAS gooit NULL values en FALSE velden op een grote berg. Er bleken een aantal records in mijn tabel te zitten met de waarde NULL. SSAS vind dat FALSE velden nu ook automisch NULL zijn dus verdwijnt de FALSE member.

De oplossing is simpel, maak een "Named Calculation" aan in je datasourceview met een code die op onderstaande lijkt:

(CASE WHEN [MetLoonDoorbetaling] = 1 THEN 'JA'
ELSE 'Nee'
END)

Op deze manier valleen alle NULL values onder de categorie FALSE en de rest automatisch onder TRUE.

 

BIDS Helper Addin

Posted In: , . By Ronald Kraijesteijn
 

Afgelopen vrijdag heb ik een poging gewaagd voor het 70-446 PRO: Designing a Business Intelligence Infrastructure by Using Microsoft SQL Server 2005. Gelukkig was deze poging ook direct succesvol.
Vergelijk ik dit examen met de 70-445 was hij een stuk eenvoudiger.Je kreeg ongeveer 6 cases en iedere case bevatte zo’n 8 tot 10 vragen. Per case had je tussen de 28 en 32 minuten de tijd. Mijn ervaring was dat dit ruim voldoende was. Totaal had je 210 minuten de tijd ( 3 ½ uur).
Wat ik me nog kan herinneren waren de volgende cases/vragen:

Fabrikam; een of andere fabriek met een DWH oplossing.

  • Bepaalde attribuutmembers zijn leeg, welke property moet je dan instellen in je dimensie
  • Welke processing mode moet je kiezen om aan een bepaalde requirement te voldoen
  • Sorteren van je dimensie
Woodgrove Bank;
  • Welk datamining algortime te kiezen voor fraude-detectie
  • Hoe package-execution meten mbv. Audit tabellen
  • Welke SQL versie kiezen voor laptop gebruikers?
  • Customer-balance laten zien, welke measuretype kiezen (LastNonEmpty)
Fourth Coffee; koffie groothandel
  • Data mining vragen over cross selling
  • Hoe vang je processing errors op?
En nog een aantal die ik niet meer weet…

Er waren twee type vragen. De eerste waren de MC-vragen waarbij je kon kiezen uit vier antwoorden tekst of plaatjes. De tweede waren de MC-vragen waarbij meerdere antwoorden mogelijk waren, dit was er geloof ik maar eentje.

De vragen ging echt over van alles en nog wat. Alle onderdelen van de BI-suite kwamen erin terug. Uiteraard ook weer de nodige vragen over data-mining maar die waren niet erg moeilijk. Bijvoorbeeld; de marketing afdeling wil cross-selling gaan toepassen, welk algorithme moeten ze dan kiezen (Association oid), niet erg spannend.

Mijn tip is erg goed de tekst te lezen en wat kernwoorden op te schrijven. Net dat ene stukje tekst zorgt er soms voor dat je bepaalde antwoorden kunt uitsluiten of direct het antwoord weet.

Helaas is er geen boek beschikbaar voor dit examen dus je zult het moeten doen met het 70-445 boekje en je eigen ervaring. Veel vragen weet je doordat je het zelf ook al een keer bent tegengekomen.