Sum Distinct for a measure object
Hi,
Can anybody let me know how to go ahead and get a sum distinct for a particular measure object in a Universe?
If your database supports the syntax, you can simply use SUM(DISTINCT table.measure_column) and it should apply the distinct function. Note, however, that this can result in under-reporting certain values. For example, assume you have two sales orders with the same amount: $100. As long as you include the order number (or primary key order_id or otherwise) you will get a total of $200. But if you remove order number, the sum(distinct) will see two equal values (both $100) and your total will only be $100 instead of the correct answer $200.
What is the real problem you are trying to solve?
Similar Messages
-
5- 6 Measure Objects in A Single Query
Hi Techies,
I want to see the consolidated value of the measure object's of my universe,
when I place my measure objects(6) in the single query, with a conditional object and wen I run the query I am seeing an error message as no data to retrieve.
and If I take one measure object in each query I am able to see some data, is there any reason behind this ..
can't I proceed with single query with all my measure objects in the same query rather than many data providers for each measure object.
Please suggest me on this
Thanks in advance .............All the measure objects are coming from single table only,
and the conditional object means we have written some condition at universe level and these objects refer to another table and there is a necessary join between these two tables... -
SUM distinct in SSAS Cube measure
Hi All,
I am new to SSAS. I am building a cube. I have many to many relationship.
The fact table is structured as below
FactMain:
DataSetId TotalCost
Data
101 100.00
102 200.00
FactBridge:
DataSetId CodeKey CodePosition
Data:
101 1 1
101 1 2
102 5 1
DimCode:
CodeKey CodeDescription
1 Code1
2 Code2
5 Code 5
If I am browsing the cube for Code1
I am getting TotalCost doubled. (200.00) Actually I need to get 100 only as it is same DataSetId
How can I get SUM(TotalCost) for distinct DataSetIds?Hi Rajkm,
According to your description, you want to sum the value for distinct dataset. Right?
In this scenario, since you build the relation between main and bridge table, it will have two records for code1. So when you calculate the total cost on code dimension, it will definitely aggregate the value for each CodeKey. So your requirement
can't be achieved. If you want to keep only one value for each code, you should not have that bridge table in you dsv when building your cube.
If you have any question, please feel free to ask.
Simon Hou
TechNet Community Support -
Select sum(distinct column ) from ....
Hello All,
I have a table the contains ID and size.
An ID identifies a unique object, but it can be repeated. The following is valid:
ID Size
1 3
4 5
5 3
1 3
What I am trynig to do is get the sum of all sizes in the table. I tried this query:
select sum(distinct size) from table;
But it does give the right result since different objects could have the same size. I tried
select sum(size) group by ID;
But it prints to me huge number of IDs and sums the sizes of an ID together. What I want thuogh is to look at the unique rows (without duplicates) and then sum their sizes together and get the result.
Any help would be greatly appreciated.
Thank you
P.S.: Sorry, I am an absolute Oracle/SQl newbie.
Thanks for your help in advanceAn ID identifies a unique object, but it can be repeated.Fnord.
I think your data model could withstand some refactoring but what you need to do is:
SELECT sum(size) FROM
( SELECT distinct id, size FROM your_table)
/This of course assumes that your duplication is complete and you don't have duplicate IDs with different sizes.
You still ought to check out the concept of UNIQUE constraints though. A database ain't a database without relational integrity.
Cheers, APC -
Group by function in a measure object
Hi All,
I am trying to create a measure in universe which is the sum of ticket amount group by country. like,
sum(Payments.Ticket_Amount) group by country name. When i place this measure in a report group footer it should display the sum to that particular group. But it is not working.
Could anybody help me how to write a group by function to create a measure.
Thanks,
swati.Hi swati.
You don't need to write the GROUP BY statement at the universe level.
The universe knows that aggregate functions require group by statements and will group the aggregate measure objects by whatever dimension objects are included in the query. If you have a measure object that is not based on an aggregate but has a projection of Sum, it will only be aggregated at the report level once the data has been returned by the query.
Measure: sum(sales_fact.value)
Measure: sales_fact.price
Dimension: country_dim.country
This would generate SQL along the lines of:
SELECT sales_fact.price, country_dim.country, sum(sales_fact.value)
FROM sales_fact, country_dim
WHERE sales_fact.country_key = country_dim.country_key
GROUP BY sales_fact.price, country_dim.country
Hope that clears it up for you.
Regards,
Mark -
Can weuse Measure Object as hyperlink from summary report to detailreport
Hello All,
I have a Web-I report as shown
Group HrsSched Hrs Used
Here Hrs Used is Sum(Resultkey) for each group (grouping is done).
Now i should make this Hrs Used as hyperlink to detail report.
For that I created a variable with following code
="<a Title='SOC Sched vs Actual Report Detail'
href=\"../../../OpenDocument/opendoc/openDocument.jsp?sWindow=New&sType=wid&sPath=[Engineering],[SOCTesterUtilization],Reports]&sDocName=SOCSchedvsActualReportDetail&lsSPeriod Begin Date="UserResponse("Period Begin Date")"&lsSPeriod End Date="UserResponse("Period End Date")"&lsMTester="[TesterVendor]"&lsMTester Category="UserResponse("Tester Category")"&lsMTime Segment="UserResponse("Time Segment")"\">"Sum([ResultKey]) + "</a>"
and placed the same in the place of Hrs Used column
But this is raising Multivalue Error as I am trying to show Sum(Resultkey ) (which is a measure)as link.
Please please do suggest me a soluiton to make this Sum(Resultkey) as link.
Thanks to all experts.As said, On Measure no one will try to make Hyperlink.
1st time, I have seen and quite impressed, frankly speaking vishnu.
It should show because revenue has more values.
Tey like this:
Sum(revenue) is there, correct??
Edit that variable and make Qualification as Dimension instead of Measure, which will help us.
I have lots of tasks today, so not able to concentrate on SDN posts. Try above suggested.
Good luck.
Oh Vishnu,
>> First you have to create Detail report
>> Apply prompt on any Object ( The Object should be same one on Master report on which you made Hyperlink or clicking)
>> Run query
>> Save report
Now Create Master report
For the prompt Object (Detail report one), create Hyperlink on top it.
And in OpenDoc syntax select detail report.
Hope it helps you.
I'm Back -
Different aggregation operator for two measures in single cube
Hi,
I have three measures age_month and age_year,pages for which aggregation operator should be like this
for age_month and age_year
time - max
account - sum
sales org - sum
for pages
time - sum
account - sum
sales org - sum
I am creating MOLAP cube in OWB and deploying to AWM. I can create above structure in OWB but when I deploy it to AWM I see that for all the dimensions and all the measures aggregation operator as sum. Off course I can change the aggregation operator at cube level but it make changes to all underlying measures too.
Also I can see in XML of the cube and see the operator for two measures is as max but UI shows as sum. After load also I am seeing in report it is calculating as sum instead of max along time dimension.
Any help would be highly appreciated.
Thanks
BrijeshIf you have an existing cube (already defined and aggregation setup) then modifying the aggregation behavior like changing order of dimensions/aggregation operators is not very robust (likely to fail due to inability of internal objects to sync up to modified defintion). Its always better to take a backup of cube definition and drop/rebuild a fresh cube with new dim order/agg operators.
How can you have a compressed cube and also set the aggregation property per dimension?
I was under the impression that if it is a compressed cube, then not only is there a restriction that all measures have same aggregation properties (defined at cube level) but also the aggregation behavior defined at cube level should use the same operator (note: any one operator out of sum or max or min) for all dimensions.
Edited by: Shankar S. on Dec 19, 2008 11:54 AM
Perhaps this additional restriction is only required if we intend to use the Cube as a source for relational queries using Cube organized MVs.
Another way to do this is given below:
I'm assuming that when you say that you require Max along Time and Sum along other dimensions, you mean that you want LAST (chronological) along time at leaf level and SUM along other dimension. Also assuming that Time hierarchy has the following levels: DAY, MONTH, QUARTER, YEAR. Big assumption :) as finding out Max along time requires the help of the fact/measure whereas finding out last along time requires us to use the dimension (along with dimension metadata) alone.
Define 1 Cube: Cube1 ... Structure: Compressed Composite, datatype: DECIMAL
Set Aggregation: SUM along all dimensions
Create 3 stored measures ( age_m_sto, age_y_sto and pages)
You may want to set description for age_m_sto/age_y_sto as "******** INTERNAL: DO NOT USE ******** Stored Measure used for age_month/age_year"
Create 2 calculated measures - age_month and age_year defined as follows ...
olap expresssion to be given in AWM:
<age_month>: OLAP_DML_EXPRESSION('cube1_age_m_sto(time if time_levelrel eq ''DAY'' then time else statlast(limit(time to bottomdescendants using time_parentrel time(time time))))', DECIMAL)
<age_year>: OLAP_DML_EXPRESSION('cube1_age_y_sto(time if time_levelrel eq ''DAY'' then time else statlast(limit(time to bottomdescendants using time_parentrel time(time time))))', DECIMAL)
NOTE: The caculated measure performs the LAST along time action using the stored measure. For every higher level time dimension member, it reaches along the dimension to the last leaf level member and reads the stored measure for that lowest level time member.
Map and Maintain Cube.
From the SQL Cube View: Use only the columns corresponding to stored measure: pages and calculated measures: age_month, age_pages (ignore columns corresponding to age_m_sto, age_y_sto)
HTH
Shankar -
Calculations with Sum Distinct Aggregations
Hi,
I got a problem. I use in one of my analysis a Pivot Table. One of my measures which I sum up has multiple entries in my tables. So I decided to use a Sum Distinct aggregation. The Sum Distinct aggregation works perfect. But when I want to do basic calculations with the measure I get wrong results. It seems that in the calculation the aggregation is just a SUM and not a Sum Distinct. In the calculation I subtract the measure from a constant. But I only get wrong result with the redundant entries.
Pivot table:
Name --- Days available --- Days worked (measure)--- Days left (= Days available minus Days worked)
Mr. A --- 60 --- 5 ---- 55
Mr. A --- 60 --- 10 --- 50
Mr. A --- 60 --- 35 --- 25
---------- Sum ---- 50 --- -45 (wrong result)
Is there a solution to this problem?
thx
Edited by: Backlit on 31.07.2011 11:29Hi,
and thx for the quick answer. But unfortunately the Server Complex Aggregate aggregation doesn't solve my problem. I also think I didn't express my self clear enough.
My problem is, that I have the same tuple multiple times in my database table. When I sum this data up - I get wrong results. To avoid this I used the SUM DISTINCT aggregation. This worked very fine. But now I'm facing an other problem. I have to perform a simple subtraction.
I have a fixed non measure value. I have to subtract the Sum Distinct measure from this fix value for a specified time periode.
it looks like this:
Pivot table
Name --- Days available(non measure) --- Work date --- Days worked (SUM) measure --- Days worked SUM(Distinct) measure
Mr.A --- 40 --- 1.5 --- 6 --- 3
Mr.A --- 40 --- 1.5 --- 6 --- 3
Mr.A --- 40 --- 2.5 --- 6 --- 3
Mr.A --- 40 --- 3.5 --- 6 --- 3
Mr.A --- 40 --- 3.5 --- 6 --- 3
Mr.A --- 40 --- 3.5 --- 6 --- 3
SUM ---- 40 --- .... ---- 6 --- 3 -> Days left: 34 (wrong result - should be 37)
I get the right result - but when I now try to calculate "Days available - Days worked SUM(Distinct)" I get the same results like I would do the calculation with
"Days available - Days worked SUM".
And is there a way to hide the multiple values in Days worked?
thx -
Drill function implemented on Measure object column in the webi report
Post Author: madan kumar
CA Forum: WebIntelligence Reporting
Hi,
I have a small issue in my project.(Maintenance Project)I created a measure object in the fact table of the existing universe and saved and exported to the repository. (Say Measure object is D where D = A-(B+C))I inserted the same object as a column between two measure objects columns of a existing WebI report.
The report has two hierarchies involved - each hierarchy has dimension objects involved.I have checked with the hierarchies to make sure that measure object is not involved.The scope of analysis is None for the query.Version is BO XI R2.
The issue is the Drill function is implemented on that particular new column.The drill function should be applicable only to the two dimension objects involved in the report.But this measure object column is also getting drilled once the Drill option is selected.I had to remove the drill optiion from the Measure object column.
Can anyone help me on this issue...
Thanks in advance...
Madan KumarSushil
Thanks for your reply. I did the date diff on the columns. It does not break into 3 different groups. I am using a function called previous on the date column. So the report is like this
DATE Pervious (DATE) Date - Pervious(DATE)
01-01-2008 01:06 Null
01-01-2008 01:12 01-01-2008 01:06 :06
01-01-2008 01:18 01-01-2008 01:12 :06
01-01-2008 01:24 01-01-2008 01:18 :06
01-01-2008 01:30 01-01-2008 01:24 :06
01-01-2008 01:36 01-01-2008 01:30 :06
Basically we are breaking on the Date - Previous ( Date) column which does not work. I am not sure if there is a way to break this. I even tried it in Crystal REports XI and it does not work their either. Any help with this issue with be greatly appriciated.
Edited by: Srinivasa Prabu on Aug 4, 2008 2:55 PM
Edited by: Srinivasa Prabu on Aug 4, 2008 2:56 PM -
Looping through an array to get the index for each measure in a combo box
Hi folks,
I am working on a web application that has two combo boxes, one for year (called yearcombo) and for measures (called myURL) for that selected year, and also two radiobuttons (in radioBtnGroup). I have two years and a bunch of measure for each year. I have a map tool tip that when you mouse over the county you see a measure for that specific year. However I have a bunch of measures for each year and I want to be able to loop through the measures (which are in an array collection inside a combobox) so my "if" expression can find every selectedIndex and bring me the tool tip for that selected measure for that selected radio button. Right now I would have to create if statements for each measure (each selectedIndex inside the myURL combobox)and each radiobutton (inside the radioBtnGroup) instead of creating a if expression to get a map tip tool for each measure. I know I would have to create a loop to search for these indexes and enter that in the if expression and also change the graphic.attributes to reflect the right measure or index selected. Do you API for Flex wizards can give me any tips on how to code this according to my code below ? Any help is greatly appreciated! (the print scree is attached)
Below is the code snippet:
if (yearcombo.selectedItem.year == "2007" && myURL.selectedIndex == 0 && radioBtnGroup.selectedValue == 0)
fLayer.definitionExpression = "DATA_YEAR_TXT like '2007'"
var graphic:Graphic = Graphic(event.currentTarget);
graphic.symbol = mouseOverSymbol;
var htmlText:String = graphic.attributes.htmlText;
var textArea:TextArea = new TextArea();
try{
textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForDirIndOut.toString()
myMap.infoWindow.content=textArea
myMap.infoWindow.label = graphic.attributes.NAME;
myMap.infoWindow.closeButtonVisible = false;
myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
catch(error:Error) {
trace("Caught Error: "+error);
And below is the combo boxes with the arrays
<mx:FormItem label="Year :" >
<mx:ComboBox id="yearcombo" selectedIndex="0" labelField="label" width="100%" change="changeEvt(event)" >
<mx:ArrayCollection id="year" >
<fx:Object label="2007" year="2007" />
<fx:Object label="2009" year="2009" />
</mx:ArrayCollection>
</mx:ComboBox>
</mx:FormItem>
<mx:FormItem label="Measure:">
<mx:ComboBox id="myURL" selectedIndex="8" width="80%" mouseOver="clickEv2(event)" close="closeHandler(event)">
<mx:ArrayCollection id="measures" >
<fx:Object id="forindout07" labeltext="2007 Forestry Industry Output" label="Forestry Industry Output " value="RADIO_BUTTONS/TFEI_07_forest_industry_output" year="2007" />
<fx:Object id="foremp07" label="2007 Forestry Employment " value="RADIO_BUTTONS/TFEI_07_forest_employment" year="2007" />
<fx:Object id="forlabinc07" label="2007 Forestry Labor Income " value="RADIO_BUTTONS/TFEI_07_forest_labincome" year="2007" />
<fx:Object id="forindbustax07" label="2007 Forestry Indirect Business Tax" value="RADIO_BUTTONS/TFEI_07_forest_business_tax" year="2007" />
<fx:Object id="forindout09" label="Forestry Industry Output " value="RADIO_BUTTONS/TFEI_09_forest_industry_output" year="2009" />
<fx:Object id="foremp09" label="2009 Forestry Employment " value="RADIO_BUTTONS/TFEI_09_forest_employment" year="2009" />
<fx:Object id="forlabinc09" label="2009 Forestry Labor Income " value="RADIO_BUTTONS/TFEI_09_forest_labincome" year="2009" />
<fx:Object id="forindbustax09" label="2009 Forestry Indirect Business Tax" value="RADIO_BUTTONS/TFEI_09_forest_business_tax" year="2009" />
<fx:Object id="blank" label=" " />
</mx:ArrayCollection>And here is the entire code
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:esri="http://www.esri.com/2008/ags"
paddingBottom="8" paddingLeft="8"
paddingRight="8" paddingTop="8"
backgroundColor="0xffffff"
layout="vertical" >
<!-- Start Declarations -->
<fx:Declarations>
<esri:SimpleFillSymbol id="mouseOverSymbol" alpha="0.5" color="0x808080">
<esri:SimpleLineSymbol width="0" color="#000000"/>
</esri:SimpleFillSymbol>
<esri:SimpleFillSymbol id="defaultsym" alpha="0.01" color="#E0E0E0" >
<esri:SimpleLineSymbol width="1" color="#000000"/>
</esri:SimpleFillSymbol>
<!-- End Declarations -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import com.esri.ags.Graphic;
import com.esri.ags.SpatialReference;
import com.esri.ags.esri_internal;
import com.esri.ags.events.GraphicEvent;
import com.esri.ags.geometry.Extent;
import com.esri.ags.layers.ArcGISDynamicMapServiceLayer;
import com.esri.ags.symbols.SimpleFillSymbol;
import com.esri.ags.symbols.SimpleLineSymbol;
import flash.utils.flash_proxy;
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.controls.RadioButton;
import mx.controls.TextArea;
import mx.events.DropdownEvent;
import mx.events.ItemClickEvent;
import mx.rpc.Fault;
import mx.rpc.events.FaultEvent;
import flash.display.Sprite;
import flash.events.ErrorEvent;
import flash.events.MouseEvent;
private function closeHandler(evt:DropdownEvent):void {
myLabel.text = ComboBox(evt.target).selectedItem.labeltext;
private function loadLayerName():void
myLegend.layers = null;
layerPanel.removeAllChildren();
//loop through each layer and add as a radiobutton
for(var i:uint = 0; i < (dynamicLayer.layerInfos.length); i++)
var radioBtn:RadioButton = new RadioButton;
radioBtn.groupName = "radioBtnGroup";
radioBtn.value = i;
radioBtn.label = dynamicLayer.layerInfos[i].name;
if (dynamicLayer.layerInfos[i].name == "Direct Impact (Million $)")
radioBtn.label = "Direct Impact";
else if (dynamicLayer.layerInfos[i].name == "Total Impact (Million $)")
{radioBtn.label = "Total Impact";
else if (dynamicLayer.layerInfos[i].name == "Total Impact (Jobs)")
{radioBtn.label = "Total Impact";
else if (dynamicLayer.layerInfos[i].name == "Direct Impact (Jobs)")
{radioBtn.label = "Direct Impact";
else
{radioBtn.visible= false;
layerPanel.addChild(radioBtn);
/* myDividerBox.getDividerAt(0).visible = false; */
//set the visible layer the first radio button
radioBtnGroup.selectedValue = 0;
dynamicLayer.visibleLayers = new ArrayCollection([0]);
myLegend.layers = [dynamicLayer];
myLegend.visible = true;
private function radioClickHandler(event:ItemClickEvent):void
myLegend.layers = null;
// update the visible layers to only show the layer selected
dynamicLayer.visibleLayers = new ArrayCollection([event.index]);
myLegend.layers = [dynamicLayer];
private function changeEvt(event:Event):void {
if (yearcombo.selectedItem.year == "2007")
measures.filterFunction=filter1
measures.refresh()
myURL.dataProvider=measures
else if (yearcombo.selectedItem.year == "2009")
measures.filterFunction=filter2
measures.refresh();
public function filter1(item:Object):Boolean
if (item.year=="2007") return true
else return false
public function filter2(item:Object):Boolean
if (item.year=="2009") return true
else return false
private function clickEvt(event:Event):void {
if (yearcombo.selectedItem.year == "2007")
measures.filterFunction=filter3
measures.refresh()
myURL.dataProvider=measures
else if (yearcombo.selectedItem.year == "2009")
measures.filterFunction=filter4
measures.refresh();
public function filter3(item:Object):Boolean
if (item.year=="2007") return true
else return false
public function filter4(item:Object):Boolean
if (item.year=="2009") return true
else return false
private function clickEv2(event:Event):void {
if (yearcombo.selectedItem.year == "2007")
measures.filterFunction=filter5
measures.refresh()
else if (yearcombo.selectedItem.year == "2009")
measures.filterFunction=filter6
measures.refresh();
else if (yearcombo.selectedItem.year == 2007 && myURL.selectedIndex==8)
myLegend.layers = null;
layerPanel.removeAllChildren();
public function filter5(item:Object):Boolean
if (item.year=="2007") return true
else return false
public function filter6(item:Object):Boolean
if (item.year=="2009") return true
else return false
/* IF YOU WANT TO INCLUDE OTHER VALUES IN THE MAP TOOLTIP LIKE COUNTY NAME AND THE LABEL OF THE SELECTED ITEM
if (myURL.selectedIndex==0)
myTextArea.htmlText = "<b>County: </b>" + gr.attributes.NAME + "\n"
+ "<b>Measure: </b>" + myURL.selectedItem.label + gr.attributes.ForDirIndOut.toString()
public function fLayer_graphicAddHandler(event:GraphicEvent):void
event.graphic.addEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler);
event.graphic.addEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler);
public function onMouseOverHandler(event:MouseEvent):void
if (yearcombo.selectedItem.year == "2007" && myURL.selectedIndex == 0 && radioBtnGroup.selectedValue == 0)
fLayer.definitionExpression = "DATA_YEAR_TXT like '2007'"
var graphic:Graphic = Graphic(event.currentTarget);
graphic.symbol = mouseOverSymbol;
var htmlText:String = graphic.attributes.htmlText;
var textArea:TextArea = new TextArea();
try{
textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForDirIndOut.toString()
myMap.infoWindow.content=textArea
myMap.infoWindow.label = graphic.attributes.NAME;
myMap.infoWindow.closeButtonVisible = false;
myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
catch(error:Error) {
trace("Caught Error: "+error);
if (yearcombo.selectedItem.year == "2007" && myURL.selectedIndex == 0 && radioBtnGroup.selectedValue == 1)
fLayer.definitionExpression = "DATA_YEAR_TXT like '2007'"
var graphic:Graphic = Graphic(event.currentTarget);
graphic.symbol = mouseOverSymbol;
var htmlText:String = graphic.attributes.htmlText;
var textArea:TextArea = new TextArea();
try{
textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForTotImpIndOut.toString()
myMap.infoWindow.content=textArea
myMap.infoWindow.label = graphic.attributes.NAME;
myMap.infoWindow.closeButtonVisible = false;
myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
catch(error:Error) {
trace("Caught Error: "+error);
if (yearcombo.selectedItem.year == "2007" && myURL.selectedIndex == 1 && radioBtnGroup.selectedValue == 0)
fLayer.definitionExpression = "DATA_YEAR_TXT like '2007'"
var graphic:Graphic = Graphic(event.currentTarget);
graphic.symbol = mouseOverSymbol;
var htmlText:String = graphic.attributes.htmlText;
var textArea:TextArea = new TextArea();
try{
textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForDirEmp.toString()
myMap.infoWindow.content=textArea
myMap.infoWindow.label = graphic.attributes.NAME;
myMap.infoWindow.closeButtonVisible = false;
myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
catch(error:Error) {
trace("Caught Error: "+error);
if (yearcombo.selectedItem.year == "2007" && myURL.selectedIndex == 1 && radioBtnGroup.selectedValue == 1)
fLayer.definitionExpression = "DATA_YEAR_TXT like '2007'"
var graphic:Graphic = Graphic(event.currentTarget);
graphic.symbol = mouseOverSymbol;
var htmlText:String = graphic.attributes.htmlText;
var textArea:TextArea = new TextArea();
try{
textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForTotImpEmp.toString()
myMap.infoWindow.content=textArea
myMap.infoWindow.label = graphic.attributes.NAME;
myMap.infoWindow.closeButtonVisible = false;
myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
catch(error:Error) {
trace("Caught Error: "+error);
if (yearcombo.selectedItem.year == "2007" && myURL.selectedIndex == 2 && radioBtnGroup.selectedValue == 0)
fLayer.definitionExpression = "DATA_YEAR_TXT like '2007'"
var graphic:Graphic = Graphic(event.currentTarget);
graphic.symbol = mouseOverSymbol;
var htmlText:String = graphic.attributes.htmlText;
var textArea:TextArea = new TextArea();
try{
textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForDirLabInc.toString()
myMap.infoWindow.content=textArea
myMap.infoWindow.label = graphic.attributes.NAME;
myMap.infoWindow.closeButtonVisible = false;
myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
catch(error:Error) {
trace("Caught Error: "+error);
if (yearcombo.selectedItem.year == "2007" && myURL.selectedIndex == 2 && radioBtnGroup.selectedValue == 1)
fLayer.definitionExpression = "DATA_YEAR_TXT like '2007'"
var graphic:Graphic = Graphic(event.currentTarget);
graphic.symbol = mouseOverSymbol;
var htmlText:String = graphic.attributes.htmlText;
var textArea:TextArea = new TextArea();
try{
textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForTotImpLabInc.toString()
myMap.infoWindow.content=textArea
myMap.infoWindow.label = graphic.attributes.NAME;
myMap.infoWindow.closeButtonVisible = false;
myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
catch(error:Error) {
trace("Caught Error: "+error);
if (yearcombo.selectedItem.year == "2007" && myURL.selectedIndex == 3 )
fLayer.definitionExpression = "DATA_YEAR_TXT like '2007'"
var graphic:Graphic = Graphic(event.currentTarget);
graphic.symbol = mouseOverSymbol;
var htmlText:String = graphic.attributes.htmlText;
var textArea:TextArea = new TextArea();
try{
textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForIndirBusTax.toString()
myMap.infoWindow.content=textArea
myMap.infoWindow.label = graphic.attributes.NAME;
myMap.infoWindow.closeButtonVisible = false;
myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
catch(error:Error) {
trace("Caught Error: "+error);
if (yearcombo.selectedItem.year == "2009" && myURL.selectedIndex == 0 && radioBtnGroup.selectedValue == 0)
fLayer.definitionExpression = "DATA_YEAR_TXT like '2009'"
var graphic:Graphic = Graphic(event.currentTarget);
graphic.symbol = mouseOverSymbol;
var htmlText:String = graphic.attributes.htmlText;
var textArea:TextArea = new TextArea();
try{
textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForDirIndOut.toString()
myMap.infoWindow.content=textArea
myMap.infoWindow.label = graphic.attributes.NAME;
myMap.infoWindow.closeButtonVisible = false;
myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
catch(error:Error) {
trace("Caught Error: "+error);
if (yearcombo.selectedItem.year == "2009" && myURL.selectedIndex == 0 && radioBtnGroup.selectedValue == 1)
fLayer.definitionExpression = "DATA_YEAR_TXT like '2009'"
var graphic:Graphic = Graphic(event.currentTarget);
graphic.symbol = mouseOverSymbol;
var htmlText:String = graphic.attributes.htmlText;
var textArea:TextArea = new TextArea();
try{
textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForTotImpIndOut.toString()
myMap.infoWindow.content=textArea
myMap.infoWindow.label = graphic.attributes.NAME;
myMap.infoWindow.closeButtonVisible = false;
myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
catch(error:Error) {
trace("Caught Error: "+error);
if (yearcombo.selectedItem.year == "2009" && myURL.selectedIndex == 1 && radioBtnGroup.selectedValue == 0)
fLayer.definitionExpression = "DATA_YEAR_TXT like '2009'"
var graphic:Graphic = Graphic(event.currentTarget);
graphic.symbol = mouseOverSymbol;
var htmlText:String = graphic.attributes.htmlText;
var textArea:TextArea = new TextArea();
try{
textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForDirEmp.toString()
myMap.infoWindow.content=textArea
myMap.infoWindow.label = graphic.attributes.NAME;
myMap.infoWindow.closeButtonVisible = false;
myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
catch(error:Error) {
trace("Caught Error: "+error);
if (yearcombo.selectedItem.year == "2009" && myURL.selectedIndex == 1 && radioBtnGroup.selectedValue == 1)
fLayer.definitionExpression = "DATA_YEAR_TXT like '2009'"
var graphic:Graphic = Graphic(event.currentTarget);
graphic.symbol = mouseOverSymbol;
var htmlText:String = graphic.attributes.htmlText;
var textArea:TextArea = new TextArea();
try{
textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForTotImpEmp.toString()
myMap.infoWindow.content=textArea
myMap.infoWindow.label = graphic.attributes.NAME;
myMap.infoWindow.closeButtonVisible = false;
myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
catch(error:Error) {
trace("Caught Error: "+error);
if (yearcombo.selectedItem.year == "2009" && myURL.selectedIndex == 2 && radioBtnGroup.selectedValue == 0)
fLayer.definitionExpression = "DATA_YEAR_TXT like '2009'"
var graphic:Graphic = Graphic(event.currentTarget);
graphic.symbol = mouseOverSymbol;
var htmlText:String = graphic.attributes.htmlText;
var textArea:TextArea = new TextArea();
try{
textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForDirLabInc.toString()
myMap.infoWindow.content=textArea
myMap.infoWindow.label = graphic.attributes.NAME;
myMap.infoWindow.closeButtonVisible = false;
myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
catch(error:Error) {
trace("Caught Error: "+error);
if (yearcombo.selectedItem.year == "2009" && myURL.selectedIndex == 2 && radioBtnGroup.selectedValue == 1)
fLayer.definitionExpression = "DATA_YEAR_TXT like '2009'"
var graphic:Graphic = Graphic(event.currentTarget);
graphic.symbol = mouseOverSymbol;
var htmlText:String = graphic.attributes.htmlText;
var textArea:TextArea = new TextArea();
try{
textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForTotImpLabInc.toString()
myMap.infoWindow.content=textArea
myMap.infoWindow.label = graphic.attributes.NAME;
myMap.infoWindow.closeButtonVisible = false;
myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
catch(error:Error) {
trace("Caught Error: "+error);
if (yearcombo.selectedItem.year == "2009" && myURL.selectedIndex == 3 )
fLayer.definitionExpression = "DATA_YEAR_TXT like '2009'"
var graphic:Graphic = Graphic(event.currentTarget);
graphic.symbol = mouseOverSymbol;
var htmlText:String = graphic.attributes.htmlText;
var textArea:TextArea = new TextArea();
try{
textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForIndirBusTax.toString()
myMap.infoWindow.content=textArea
myMap.infoWindow.label = graphic.attributes.NAME;
myMap.infoWindow.closeButtonVisible = false;
myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
catch(error:Error) {
trace("Caught Error: "+error);
public function onMouseOutHandler(event:MouseEvent):void
var gr:Graphic = Graphic(event.target);
gr.symbol = defaultsym;
myMap.infoWindow.hide();
]]>
</fx:Script>
<fx:Style>
@namespace esri "http://www.esri.com/2008/ags";
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
@namespace esri "http://www.esri.com/2008/ags";
@namespace components "com.esri.ags.components.*";
components|InfoWindow
content-background-alpha : 0.4;
background-color : #4A7138;
background-alpha : 0.7;
border-style : solid;
</fx:Style>
<mx:HBox width="930" height="800" id="mapHbox" horizontalAlign="center" >
<mx:HBox width="80">
</mx:HBox>
<mx:HBox id="myHBox" width="800" height="600" backgroundColor="0xffffff" >
<mx:VBox height="590" width="358" >
<!-- <mx:Panel
width="356" height="100%"
color="0x000000"
borderAlpha="0.15"
>
-->
<mx:Canvas height="100%" width="100%" backgroundColor="0xffffff" >
<esri:Map id="myMap" openHandCursorVisible="false"
height="100%"
logoVisible="false"
doubleClickZoomEnabled="false"
scrollWheelZoomEnabled="false"
zoomSliderVisible="false"
scaleBarVisible="false" scale="4000000" >
<esri:extent>
<esri:Extent xmin="-10736651.061900" ymin="4024099.909700" xmax="-10409195.669800" ymax="3440153.831100" >
<esri:SpatialReference wkid="102100"/>
</esri:Extent>
</esri:extent>
<esri:ArcGISDynamicMapServiceLayer id="dynamicLayer2"
url="http://tfs-24279/ArcGIS/rest/services/RADIO_BUTTONS/counties_layer/MapServer" />
<esri:ArcGISDynamicMapServiceLayer id="dynamicLayer" name=" "
alpha="1"
load="loadLayerName()"
url="http://tfs-24279/ArcGIS/rest/services/{myURL.selectedItem.value}/MapServer" />
<esri:FeatureLayer id="fLayer"
graphicAdd="fLayer_graphicAddHandler(event)"
mode="snapshot"
outFields="*"
symbol="{defaultsym}"
url= "http://tfs-24279/ArcGIS/rest/services/RADIO_BUTTONS/feature_layer_0709_five/FeatureServer/ 0" />
</esri:Map>
</mx:Canvas>
<!-- </mx:Panel>-->
</mx:VBox>
<mx:VBox height="590" width="20" >
</mx:VBox>
<mx:Canvas height="500" width="400" backgroundColor="0xffffff"
horizontalScrollPolicy="off"
verticalScrollPolicy="off" >
<mx:VBox width="420" height="50%" paddingLeft="5" paddingTop="10" paddingRight="10" paddingBottom="10"
verticalGap="8">
<mx:Form >
<mx:FormItem label="Year :" >
<mx:ComboBox id="yearcombo" selectedIndex="0" labelField="label" width="100%" change="changeEvt(event)" >
<mx:ArrayCollection id="year" >
<fx:Object label="2007" year="2007" />
<fx:Object label="2009" year="2009" />
</mx:ArrayCollection>
</mx:ComboBox>
</mx:FormItem>
<mx:FormItem label="Measure:">
<mx:ComboBox id="myURL" selectedIndex="8" width="80%" mouseOver="clickEv2(event)" close="closeHandler(event)">
<mx:ArrayCollection id="measures" >
<fx:Object id="forindout07" labeltext="Forestry Industry Output" label="Forestry Industry Output " value="RADIO_BUTTONS/TFEI_07_forest_industry_output" year="2007" />
<fx:Object id="foremp07" label="Forestry Employment " value="RADIO_BUTTONS/TFEI_07_forest_employment" year="2007" />
<fx:Object id="forlabinc07" label="Forestry Labor Income " value="RADIO_BUTTONS/TFEI_07_forest_labincome" year="2007" />
<fx:Object id="forindbustax07" label="Forestry Indirect Business Tax" value="RADIO_BUTTONS/TFEI_07_forest_business_tax" year="2007" />
<fx:Object id="forindout09" label="Forestry Industry Output " value="RADIO_BUTTONS/TFEI_09_forest_industry_output" year="2009" />
<fx:Object id="foremp09" label="Forestry Employment " value="RADIO_BUTTONS/TFEI_09_forest_employment" year="2009" />
<fx:Object id="forlabinc09" label="Forestry Labor Income " value="RADIO_BUTTONS/TFEI_09_forest_labincome" year="2009" />
<fx:Object id="forindbustax09" label="Forestry Indirect Business Tax" value="RADIO_BUTTONS/TFEI_09_forest_business_tax" year="2009" />
<fx:Object id="blank" label=" " />
</mx:ArrayCollection>
</mx:ComboBox>
</mx:FormItem>
</mx:Form>
<mx:VBox id="layerPanel" width="50%" height="8%" verticalGap="3" paddingLeft="17">
<mx:RadioButtonGroup id="radioBtnGroup" itemClick="radioClickHandler(event)" />
</mx:VBox>
<mx:VBox paddingLeft="17" height="50%" >
<mx:Canvas id="legendPanel" width="100%" >
<mx:Label id="myLabel" text=" " fontWeight="bold" />
<esri:Legend id="myLegend"
layers="{[dynamicLayer]}"
map="{myMap}" visible="false"
respectCurrentMapScale="false"/>
</mx:Canvas>
<mx:TextArea width="275" borderAlpha="0" height="200" >
<mx:htmlText >
<![CDATA[<font size='11'><b>Note:</b> Counties in white indicate either no data is available for that measure or the data has been supressed due to confidentiality.</font>
]]>
</mx:htmlText>
</mx:TextArea>
</mx:VBox>
</mx:VBox>
</mx:Canvas>
</mx:HBox>
</mx:HBox>
</mx:Application> -
Hello everyone,
I am using the following MDX query on one of my SSRS report.
SELECT NON EMPTY { [Measures].[Days Outstanding], [Measures].[Amt] } ON COLUMNS,
NON EMPTY { ([Customer].[Customer].[Customer Key].ALLMEMBERS) }
HAVING [Measures].[ Days Outstanding] > 60
DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
FROM ( SELECT ( STRTOSET(@Location, CONSTRAINED)) ON COLUMNS
FROM ( SELECT ( {[Date].[Fiscal Period].&[2014-06]}) ON COLUMNS
FROM [Model]))
Over here, the data is being filtered always for current month and for a location that is being selected by user from a report selection parameter.
I would like to get the count of total no. of customers and sum of the amount measure.
When I am using them in calculated members it gives incorrect values. It considers all records (ignores the sub-select statements) instead of only the records of current month and selected location.
I also tried with EXISTING keyword in calculated members but there is not difference in output. Finally, I manage the same at SSRS level.
Can anybody please advise what are the ways to get the required sum of [Measures].[Amt] and count of [Customer].[Customer].[Customer Key].ALLMEMBERS dimension?
Also, does it make any difference if I manage it as SSRS level and not at MDX query level?
Any help would be much appreciated.
Thanks, Ankit Shah
Inkey Solutions, India.
Microsoft Certified Business Management Solutions Professionals
http://www.inkeysolutions.com/MicrosoftDynamicsCRM.htmlCan anybody please advise what are the ways to get the required sum of [Measures].[Amt] and count of [Customer].[Customer].[Customer Key].ALLMEMBERS dimension?
Also, does it make any difference if I manage it as SSRS level and not at MDX query level?
Hi Ankit,
We can use SUM function and COUNT function to sum of [Measures].[Amt] and count of [Customer].[Customer].[Customer Key].ALLMEMBERS dimension. Here is a sample query for you reference.
WITH MEMBER [measures].[SumValue] AS
SUM([Customer].[Customer].ALLMEMBERS,[Measures].[Internet Sales Amount])
MEMBER [measures].[CountValue] AS
COUNT([Customer].[Customer].ALLMEMBERS)
MEMBER [Measures].[DimensionName] AS [Customer].NAME
SELECT {[Measures].[DimensionName],[measures].[SumValue],[measures].[CountValue]} ON 0
FROM [Adventure Works]
Besides, you ask that does it make any difference if I manage it as SSRS level and not at MDX query level. I don't thinks it will make much difference. The total time to generate a reporting server report (RDL) can be divided into 3 elements:Time to retrieve
the data (TimeDataRetrieval);Time to process the report (TimeProcessing);Time to render the report (TimeRendering). If you manage it on MDX query level, then the TimeDataRetrieval might a little longer. If you manage it on report level, then the TimeProcessing
or TimeRendering time might a little longer. You can test it on you report with following query:
SELECT Itempath, TimeStart,TimeDataRetrieval + TimeProcessing + TimeRendering as [total time],
TimeDataRetrieval, TimeProcessing, TimeRendering, ByteCount, [RowCount],Source
FROM ExecutionLog3
WHERE itempath like '%reportname'
Regards,
Charlie Liao
TechNet Community Support -
How to get sum distinct in the cube. Is it possible.
Here is the scenario.
One report has many countries on it but only one amount.
For a particular day we have the following data in the fact.
TRANSACTION_DAY_NO
Country
Total Amount
19900101
US
34
19900101
IND
35
19900101
IND
36
19900101
AUS
37
19900101
UNKNOWN
38
19900101
UNKNOWN
39
19900101
UNKNOWN
40
19900101
UNKNOWN
41
19900101
UNKNOWN
42
19900101
UNKNOWN
43
19900101
US
43
19900101
IND
42
There are 2 dimensions on the cube.
Date, Country.
I am not sure how to build a cube on this data.
with t as (
select 19900101 transaction_Day_no, 'US' country_no, 34 total_amount from dual union all
select 19900101, 'IND', 35 from dual union all
select 19900101, 'IND', 36 from dual union all
select 19900101, 'AUS', 37 from dual union all
select 19900101, 'UNKNOWN', 38 from dual union all
select 19900101, 'UNKNOWN', 39 from dual union all
select 19900101, 'UNKNOWN', 40 from dual union all
select 19900101, 'UNKNOWN', 41 from dual union all
select 19900101, 'UNKNOWN', 42 from dual union all
select 19900101, 'UNKNOWN', 43 from dual union all
select 19900101, 'US', 43 from dual union all
select 19900101, 'IND', 42 from dual
select transaction_day_no, country_no, sum(distinct total_amount) from t
group by cube(transaction_Day_no, country_no);
I am using AWM. I have tried to build by selecting the following aggregate for the cube
max for the country_no and
sum for the tranaction_Day_no
But i am getting incorrect results.
If i select sum for both country_no and transaction_no then also i get incorrect results.
Please help me solve this issue.
thanksThanks for all your reply's.
The problem is that i have duplicates because
One report can have many customers.
One customer can have many countries.
One customer can have many reports.
If i include the report number in the above data and do a sum on both day and report_number and max for everything else then everything is find and i am getting correct results.
But if i take out the report dimension then i am stuffed.
Also the problem is that i can't have one big dimension for the report as the number of reports are in access of 300M
We have tried to solve this issue by having the fullowing.
Dummy Cube.
This has all the combination of all the dimension in the fact table with the report dimension as only one row(-1)
Report Dimension for each Quarter(34M rows each)
Quarter Cube is build.
Then add the values from all the Quarter Cube with the Dummy Cube.
Tried for 2 Quarter and its working fine results are correct as well.
Only problem is that its taking a long time to build the cube because of the report dimension.
I am trying to find a way to remove the report dimension but still use it. As we only use report dimension at level 'ALL'
But if we do aggregation at 'ALL' level the answers are wrong again.
Thanks for looking into this and taking time to reply.
Regards
Alvinder -
Asset under Construction for Investment Measures
Hi all
This is my client requirement
how to do asset under Construction for Investment Measures
configration
pls send configrationHi
These are the steps to be followed:
1. Create a asset class for CWIP (Auc) - OAOA: In this select Investment Measure under Status of AuC.
2. Define Investment Profile (OITA) - Give AuC Asset class as invest measure asset class.
3. Create Internal Order Type for Investments: Normally standard 0650 order type will take care of the requirement. We need not to create anything.
4. Create Asset (AS01) under normal asset class i.e., buildings or vehicles etc... (You cannot create under AuC Asset Class)
5. Create Internal Order (KO01): Give Object class as investment and under Investments tab give investment profile created in step 2.
Go to settlement profile tab and give category as FXA and settlement receiver the asset no. and give 100%.
6. Change asset master to incorporate the internal order number under Origin Tab. Give no. in Investment order field.
7. Release the Internal Order (KO02)
8. Post the transactions through different T.Codes by referring Internal Order as account assignment.
9. Go to Internal Order through KO02 and complete TECO under control data.
10. Go to T.Code KO88 (internal order settlement) and settle the order.
Hope this will help you. -
Urgent!! Sum function for subtotals.,Exporting BA does not list Workbooks
Hi,
I m facing this issue when calculating subtotals in the report. When i use the sum function, the subtotals are not getting displayed. I tried usin the Cell Sum Distinct function and it sums up only if the amounts are different. For example when i have two amounts of 5.00 each, it sums as 5.00 only in the subtotal. Can anyone help me resolve this?
Also, i m facing one more issue. When i export the BA, the user wants the list of workbooks under that that would be exported. (The list is shown when exporting the EUL as such), but the list is just blank in BA export. Is this a set up issue?
Thanks in advance.Hi,
Not all calculations can be summed correctly by Discoverer. What is the calculation that you are trying to sum?
The workbooks are not tied to a BA as the folders used in a workbook may be in many different BAs. Therefore the workbooks are not exported with a business area. The workbooks must be exported separately.
Rod West -
How to identify the source column and source table for a measure
Does anyone have a query that I can use to positively identify the source column and source table for a cube measure in an SSAS cube? Visual Studio shows ID, Name, and Source, but it is nearly worthless in a large cube and database.
Also - the same for a dimension would be great.
If no query exists for this, can someone please explain how to find the source column/table for a measure and for a dimension?
Thanks.DMVs don’t expose the DataSourceView content. AMO is much better suited for object model operations like
this than the DMVs. PowerShell is also sometimes an option, but in this case C# code would be much easier because analyzing the contents of the DataSourceView is much easier using the .Net DataSet class.
Hope this helps.
Reeves
Denver, CO
Maybe you are looking for
-
Apple Pro Speakers with Mac Pro?
Just received a new *Mac Pro* at the office, and disappointed to learn that, apparently, the *Mac Pro speakers* I've been using with the previous Power Mac G4 (FW800) are incompatible. The Mac Pro's audio out looks like a standard mini-out, while the
-
The problem is that my iphone isnt connected/synced to iTunes and i've forgotten my password so iTunes isnt connected either so can someone pls help me? PLEASE HELP ME
-
Option "Native VLAN ID" doesn't show up
Hi all: I'm configuring several AP in a WLC 5508. All of them are in FlexConnect with VLAN Mapping and the most are 1131 and I can configure Native VLAN and VLAN mapping option. However, I just added a 2702 AP to the WLC and I found out the "Native V
-
I updated software but can't get my apple id to work.
I have updated and it will not let me use my apple id to start up. I did reset password but it still won't work.
-
Anyway to get trial A3 to convert A2 library before purchasing?
I ordered the upgrade version of Aperture 3 from Apple the minute it was released and chose standard shipping...big mistake. Five days later, my upgrade is sitting 5 hours south of here in Orlando (makes no sense) and now won't be delivered until Tue