Database zelf query maken


Tableau maakt net als mijn code of wanneer je de SQL manager gebruikt, gebruik van een 'SQL query' om een database te raadplegen.

Zo'n query is iets in de trant van:
SELECT * FROM [sumsonite_20171201].[dbo].[BESTAND]

Deze query zegt: selecteer alle bestanden van de database sumsonite_20171201 in tabel BESTAND Tabelau zal echter een query beperken tot alleen de gebruiker, dus iets van:

SELECT * FROM [tableau_database_X].[dbo].[BESTAND] WHERE gebruikersnaam='info@largos.nl'

en dat voor alle verschillende tabellen in de tableau database. De WHERE statement is dus belangrijk want dat beperkt de query tot een bepaalde set. Nu zou je dus alle data van alle gebruikers in 1 database kunnen zetten. Dan blijft het eerste deel van de query gelijk voor alle gebruikers en veranderd er alleen de gebruikersnaam. Dus bijvoorbeeld info@largos.nl voor klant LARG en info@sumsonite.nl voor klant SUMCI:

SELECT * FROM [tableau_database_X].[dbo].[BESTAND] WHERE gebruikersnaam='info@largos.nl' SELECT * FROM [tableau_database_X].[dbo].[BESTAND] WHERE gebruikersnaam='info@sumsonite.nl'

Zouden we per klant een eigen database opzetten voor tableau waardes dan worden de queries:

SELECT * FROM [tableau_database_LARG].[dbo].[BESTAND] WHERE gebruikersnaam='info@largos.nl'
SELECT * FROM [tableau_database_SUMCI].[dbo].[BESTAND] WHERE gebruikersnaam='info@sumsonite.nl'