Is it possible to create a derived table in PowerPivot from a DAX query? For example, the SUMMARIZE function returns a table. But, I haven't found a way to create a table based upon the value returned by this function.
If you have Excel 2013 it is possible though not as easy as the calculated tables #greggyb refers to. This article explains how:
http://www.sqlbi.com/articles/linkback-tables-in-powerpivot-for-excel-2013
Currently the only product that allows calculated tables is Power BI Desktop. Power Pivot for Excel 2016 will likely get this in an update at some point. I can't speak to Power Pivot for previous versions of Excel.
Related
I need to create a dashboard which showcases a number of charts coming from the same data source.
To have the different charts, I need to create multiple custom SQLs. However every time I do that tableau will prompt me to join the tables. I do not want to join the tables as the table will otherwise be too large.
Any help will be appreciated, thank you!
If the same columns are used for different charts but the number of records vary, then this could be done:
In the custom sql query create a column naming as Col_ws and update it with unique name. Repeat this for other worksheet logic and create a union in custom sql query itself. When it comes to tableau worksheet, use that Col_ws dimension as a context filter for different worksheets.
If the columns vary for different worksheets, above approach can't be taken. So have to create different custom sql queries (data sources) for different worksheets.
Let us know if this works!
Just wondering if anyone had encounter this situation, that calculated table returns no row, but when evaluating the DAX it returns correct result.
In one of my tabular models, I created several summarized tables to improve query performance. The summarized table linked to the project table by project ID. I also have a row level security applied on project table.
For some reasons, I was told the report does not work. When I use SSMS to browse the tabular model via user's account, I found that if I evaluate the table directly it returns no row, e.g.
evaluate my_summarized_table
But, if I evaluate the formula directly it returns correct result, e.g.
evaluate Filter(Summarize(mytable, 'Project'[Project Id]...))
I tried to use SQL Profiler and $system.Discover_Sessions but could not figure out what is the difference between the calculated table and the raw DAX query.
Had anyone have this situation before? What could be the possible reason for that?
I have a table that I use for creating reports using powerpivot in Excel. The table has 30 columns and ~2M rows, and because of this massive # of columns and rows, the excel file is already ~20MB (and yes, I use every single column in that table).
The business has asked to add a new data in the excel, which will add three new columns and ~1M rows. I'm worried about what that will do to my excel and impact to the size. Unfortunately I cannot use join because the existing table has a different hierarchy level
I was thinking of modifying the stored procedures of the existing table to union the table that includes new data instead of pulling the new table to excel and create join within the powerpivot data model.
what's the "better" approach here? will the excel be smaller if I did a join within excel or have union within SQL?
Better approach is - don't feed Excel with massive union-style tables in order to do a pivot queries.
There are OLAP Cubes for exactly that purpose already invented. Excel can connect to this kind of datasource since quite some time.
In order to create the cube using Microsoft's SQL server take a look at Analysis Services. The name had changed several times and other DB providers also have this kind of support.
Basic concept is the same. Pump your data into an efficient normalized cross-indexed structure. Use Excel and other tools to analyze that structure.
The drawback is that you will not see the data "online" and in case of Microsoft's SQL you need to purchase special license to be able to use it.
I have a dataset that was build using MDX (analysis cube). I have a table with few columns. Now, I need to add one more column with specific data that is available in sql db and not cube. I know it is not possible to do that. What can I do to work around this issue?
Thank you
Hopefully you've using 2008R2, so you can use the LOOKUP or LOOKUPSET functions to match items from one datasource to another:
http://blog.datainspirations.com/2010/04/07/sql-server-2008-r2-reporting-services-look-up-part-iii/
It was released two years ago, so hopefully you're up to date?
You can, for each rows in your table, define a subreport that pulls the data from sql server based upon the mdx dataset. Note that the query to sql server will be made as many times as the number of records in your mdx dataset.
I want to use an MDX drill through command but i also want to join it to some SQL tables as well.
that is there will be an Id in the fact table and not a lot of other data I want to join this on to another table or view and produce a report based on those ID's returned in the drill down.
Ideas?
MDX won't do this directly. The only way I can think of doing this would be to retrieve the recordset from the drillthrough (which can be done with ADO), load it into a temporary table and join it against whatever else you want in a query.
The other option is to widen the drillthrough (if the dimensions have the data you need) and get the fields from that. Note that SSAS2005+ can support multiple drillthrough actions.
This MSDN article has some code snippets that demonstrate working with record sets returned from a drillthrough.