Defining Related Fields for Presentation/Reporting from SSAS - sql-server

I might be going down the wrong track here, but what I am after is some guidance on what to do for related data in SSAS.
What I am after is, when I create a cube I want to be able to use it for reporting/end users, but my dimension may have a product cube, but what is the appropriate way of bringing in other data like the Product Name, Description, Created Date, etc - information that you may not want to actually drill into, but is related to the axis that you're looking at.
I would need to show some of this information if I was reporting from it, but I can't seem to see a way, and most of the youtube videos, etc seem to go over the real basics on Adventureworks and that's it - so I'm not sure how this works in the real world.
So, in the end they can go into Excel/whatever, and see:
Product code Name Total Profit
Rather than just the code axis, and the profit.

It depends on how you want to see it. We typically call these types of fields "member properties". You create them by setting the AttributeHierarchyEnabled property to False. You use them in Excel as described here (works in Excel 2007 and Excel 2010):
http://blog.davyknuysen.be/2009/08/03/olap-reporting-with-excel-2007-use-member-properties/

Related

Visio Master Shape Data - dropdown from database

I have a seemingly straightforward Visio question that I am trying to find out if it is even possible to achieve:
Can I create a set of master shapes, with each master shape representing a type of 'thing', for example it could be that one shape represents a monitor and another a keyboard, another a mouse, and so on...and provide the user the ability to select the model / product code / sku or whatever as a shape data field (eg/ Prop.Make, Prop.Model, Prop.SKU and so on) with the data for the dropdown being provided from either a database or SharePoint list?
This way the user will always be able to fill in current information for a shape by selecting the particular 'thing' that it is from the database and the appropriate value options are shown to them to choose from.
Is anything like this possible? It would certainly help with some of the designs that need to be done by less experienced users.
Any help greatly appreciated.
The Frog
It is feasible, but requires some coding.
Key is to be able to connect to your DB (https://www.connectionstrings.com/), query it with a set of parameters that you would define, choose the right item from the set of returned rows, then populate the custom properties of your shape with this chosen item.
I hope you are proficient enough with a coding system (VBA, C#, ...) and the shapesheet. Otherwise you can use the solution suggested by Surrogate - choosing a row from a database table or query. But that is not exactly what you asked for.
If you use Visio 2010+ Professional edition (not Standard) you can use Data linking.

Thought on creating a searchable database

I guess what I need is two things. First a way to input data into an Excel like application or a form builder, then a way to search those entries. For example.. CAR PART put a car Part A into Field 1 the next Field 2 would be car Type, followed by make and model. The fields would need to be made into a form consisting of preset inputs such as ( Title/Type ) and (Variable Categories) so a drop down menu, icons, or checkboxes would help narrow down the list of results. What pieces need to be in place to build/use a lightweight database/application design like this that allows inputting new information and then being able to search for latet search for variables? Also is there any application that does this already, a programming code to learn, or estimated cost and requirements to have it built?
First, there might be something off the shelf that does this already, and there are applications like this. Microsoft's Access would be a good place to start to see if it would fit your needs -- you can build forms and store data without much programming effort. As time goes on, you can scale up to a SQL Server.
It's not clear to me if your data is relational or not, and it might not matter much at first (any database will likely handle your queries to start). I originally thought your data was not relational, but re-reading your post, I'm not so sure now.
If that doesn't work, or you want more flexibility, then I'd start looking at NoSQL as an option. Some good choices include Mongo and RavenDB (there are many others).
You can program it yourself with just about any major language -- some provide more or less functionality based on the tie-in to the data.

Set up better workflow in Excel

Okay. I was looking at my physio's spreadsheets for his small, private business today. He uses Excel to keep track of his clients appointments, fees, attendences, medical reports etc. At the moment he has a single sheet where he adds every clients appointment to the list as he goes - there's 3 years of details, one row for every appointment! It's huge and pretty hard to navigate and make sense of when he's extracting information such as fees paid/unpaid, total visits, etc.
I'm a novice to sub-intermediate at Excel, but getting better. What I'm wondering is it possible to set up a "front page" where he can enter a day's details in a single spreadsheet, press an export cell,and then have Excel pass the relevant data to individual sheets for each client. The data on that front page would look for the clients name as a string to find the relevant sheet and drop the information in.
I'm not asking how to do it as such, but rather wondering if this is possible at all!
Thanks
=COUNTIF(Sheet1!RangeToLookThrough, ValueYoureLookingFor)
Put this where you want.
If you want a daily dashboard, you could replicate this to do something like :
=SUMPRODUCT(--(Sheet1!B2:B4000<>""),--(MONTH(Sheet1!B2:B4000)=9))
Feel free to alter this to capture yesterday or whatever date your looking for. I just used an old report to mess with and give you an example.

How do I design a configurable checklist table for my database?

I am working on a database model and one of the areas I need to address is a client configurable checklist table(s). Ideally the client would have a set of predefined checklists that I could then enter as bit columns. Alas, this is not going to happen. The client wants the ability to add and group checklists so they are reusable.
I could go with an EAV type model and use strings for "true/false" but I've been down this road before and would rather not take that journey again.
Any thoughts or suggestions are welcome. Thanks.
"Client Configurable" almost always means EAV. EAV's store data fine... it's just getting the data back out that's the trick.
;-)
The other... somewhat-less objectionable approach is to make generic columns. Answer1 BIT, Answer2 BIT, Answer3...
If you do this, then make a table where you define the real names of the columns so that you could build the correct view for any given check list.
Say the first check list is
Gas in the tank?
Money in the Wallet?
Then store
CheckList_ID Answer_Number Column_Name
1 1 Tank has Gas
1 2 Wallet has Money.
Then the view would be:
SELECT Answer1 "Tank has Gas", Answer2 "Wallet has Money"
FROM Generic_Answer_Table
WHERE CheckList_ID = 1
It obvious how the view would be dynamically generated.
The downside is that if you include 10 columns they can't have more than 10 EVER.
XML is the other possibility and doesn't suffer that issue... however it's not quite as SQL friendly.
I'm thinking XML will be the best way to give them the control they seek along with keeping the check boxes dynamic. Maybe an XML file per page/section that contains all the custom check boxes. Whats good about XML is that its easy to work with and gives you great flexibility. At the database level just save the output of the check boxes as finalized data, just in case the check box source XML changes you will still see the originally selected values saved at the database level.
We're building http://tallyfy.com for such a purpose, although a direct relation between actions and your database table is something new.

Storing object graph as of date in a database

I'm going to try to keep this question database agnostic, but I have an interesting problem that I need to tackle and I thought I'd open up the floor for suggestions and feedback.
I need to be able to download data from a feed source and store it in a database of some kind, the data needs to be merged into the existing data and I need to able to query for the data as of any given date. It's the part in bold that I'd like to talk about.
Essentially what this problem boils down to is that I need to persist an object graph to an OLTP database and be able to query it temporally.
In the simple case of one table this problem is very simple, you have a date range indicating the valid time span for the record and then you pass in an as of range and only select rows that are valid for this point in time. The issues rise when you have more than one table.
Let's take the case of having two tables, Order-*Item.
When we query for an order we can apply the same as of date changes to the item table. All is well, but what happens if we want to modify an order? Now we need to copy the order row, set the date ranges so the valid from on the new row and the valid to on the new row is set to now. We also have to copy the items, or if we change our model copy the references to the items.
Even in this simple case things are starting to get complicated.
My problem is exacerbated because I have a self-referential object graph, so to use the above model you'd have Order-*Item-*Order.
What would you do? How do you structure your databases when you need versioning of rows and temporal queries?
Back in the day, Developing Time-Oriented Database Applications in SQL was the best source of info for temporal databases. Published in 1999, the copyright has reverted to the author, and the link goes to his PDF version of the book. Look here for more of his publications, and for a link to the compressed content of the CDROM.

Resources