I’m new to reporting svcs and I’m writing a report based on a report model (.smdl) created in VS.NET 2008. I seem to be missing out on the report builder query view’s analog to a ‘left join.’ Model is very simple:
Three entities: Cust (custid, custname) Ord (ordid, custid, orddate, …) Charge (chargeid, ordid, chargetype, chargevalue…)
Think of a ‘charge’ as an optional cost (a special charge) associated with an order — some orders have them, some don’t.
Model was auto-generated from views (.dsv) which accurately indicate the relationships between cust and ord, and between ord and charge. I noted that when designing the view relationships there was no kind of option to indicate (for example) that the relationship should be treated as a ‘left join’.
Now I jump to Report Builder 2 (RB2) to design a report based on this model. My goal is to simply list for each order: customer name, order date, charge type, charge value (i.e., order row would repeat if it had more than one charge type). I want ALL orders listed, even if an order doesn’t have any charges — what I would consider a ‘left join’ in the traditional sense.
I use RB2’s Query Designer to create the dataset, and merely select (i.e., double-click) the entities I want as fields in the report: custname, orddate, chargetype, chargeval. I then create a simple table in the report based on this dataset.
When running the report, I get only those orders which actually have charges. I was rather hoping to get all orders. Is there a way I can specify that?
Thank you, Bill Dawson
I got an answer via Sql Server forums:
http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/20d4b4fd-dc0b-428e-a5b8-aedf5c53d340
Relevant portion here from Aaron Meyers: