Dimension with one value not returned
Hi all,
I have a question related with the dimensions returned by the Endeca search results.
There is one dimension, which has only one single value for all records, that is not returned with the Endeca search results.
Do you know why can this happen?
Many thanks,
Alejandra
Alejandra,
Yes. Guided navigation only returns "valid refinements" for a given navigation state. In other words, after each refinement is made, the Endeca Server recalculates which refinements are now valid. Valid refinements are those that, if selected, will filter the result set further. If every record in a result set carries the same dimension with the same value, the Endeca Server will not return it since it is not valid as a refinement. If every record has it, selecting it would not refine the results further -- rather, it would return the same collection of records that is already displayed effectively accomplishing nothing.
I suspect that EVERY record in your Endeca Server has the same value for a dimension and, by design, the Endeca Server is not returning it in guided navigation.
HTH,
Dan
http://branchbird.com
Similar Messages
-
When I create a dimension with just one level when I refresh I have this error:
SQL> EXECUTE DBMS_AWM.REFRESH_AWDIMENSION(USER, 'M62_EN_AW', 'AW_D_M62_DIM_E');
BEGIN DBMS_AWM.REFRESH_AWDIMENSION(USER, 'M62_EN_AW', 'AW_D_M62_DIM_E'); END;
ERROR en línea 1:
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at "OLAPSYS.DBMS_AWM", line 1143
ORA-06512: at line 1
can anyone help me?Hi!thank you for all. I dont know if I understand correctly what you said but
this is the xml template that generates de awm creating a dimension with one level. Can you do something?
<?xml version = '1.0' encoding = 'UTF-8' ?>
<!-- <!DOCTYPE XMI SYSTEM 'Model.dtd' > -->
<AWXML version = '1.0' timestamp = 'Mon Feb 11 13:29:11 2002' >
<AWXML.content>
<Create Id="Action6">
<ActiveObject >
<AW Name="M62.M62_EN_AW" LongName="M62.M62_EN_AW" ShortName="M62.M62_EN_AW" PluralName="M62.M62_EN_AW" Id="M62.M62_EN_AW.AW" Schema="M62">
<Dimension Name="ENTID" LongName="ENTID" ShortName="ENTID" PluralName="ENTID" Id="ENTID.DIMENSION" Schema="M62" isTime="false" isMeasure="false" UseNativeKey="false">
<Attribute Name="LONG_DESCRIPTION" LongName="Descripción Larga" ShortName="Descripción Larga" PluralName="Descripciones Largas" Id="ENTID.LONG_DESCRIPTION.ATTRIBUTE" DataType="TEXT" Classification="MEMBER_LONG_DESCRIPTION" InstallAsRelation="false" IsDefaultOrder="false" IsMultiLingual="true"/>
<Attribute Name="SHORT_DESCRIPTION" LongName="Descripción Breve" ShortName="Descripción Breve" PluralName="Descripciones Breves" Id="ENTID.SHORT_DESCRIPTION.ATTRIBUTE" DataType="TEXT" Classification="MEMBER_SHORT_DESCRIPTION" InstallAsRelation="false" IsDefaultOrder="false" IsMultiLingual="true"/>
<Hierarchy Name="J_ENT" LongName="J_ENT" ShortName="J_ENT" PluralName="J_ENT" Id="ENTID.J_ENT.HIERARCHY" isDefault="true" Type="LEVEL">
<AttributeProjection Name="OBJ1780952198" LongName="" ShortName="OBJ1780952198" PluralName="OBJ1780952198" Id="ENTID.J_ENT.OBJ1780952198.ATTRIBUTEPROJECTION" DataType="Text" Classification="USER" InstallAsRelation="false" IsDefaultOrder="false">
<Attribute XMLIDref="ENTID.LONG_DESCRIPTION.ATTRIBUTE" />
<Hierarchy XMLIDref="ENTID.J_ENT.HIERARCHY" />
</AttributeProjection>
<AttributeProjection Name="OBJ1780952199" LongName="" ShortName="OBJ1780952199" PluralName="OBJ1780952199" Id="ENTID.J_ENT.OBJ1780952199.ATTRIBUTEPROJECTION" DataType="Text" Classification="USER" InstallAsRelation="false" IsDefaultOrder="false">
<Attribute XMLIDref="ENTID.SHORT_DESCRIPTION.ATTRIBUTE" />
<Hierarchy XMLIDref="ENTID.J_ENT.HIERARCHY" />
</AttributeProjection>
<HierarchyLevelAssociation Name="NIV1" LongName="HLA1" ShortName="HLA1" PluralName="HLA1" Id="ENTID.J_ENT.NIV1.HIERARCHYLEVELASSOCIATION">
<AttributeProjection Name="OBJ1780952201" LongName="" ShortName="OBJ1780952201" PluralName="OBJ1780952201" Id="ENTID.J_ENT.NIV1.OBJ1780952201.ATTRIBUTEPROJECTION" DataType="Text" Classification="USER" InstallAsRelation="false" IsDefaultOrder="false">
<Attribute XMLIDref="ENTID.LONG_DESCRIPTION.ATTRIBUTE" />
<Level XMLIDref="ENTID.NIV1.LEVEL" />
<Hierarchy XMLIDref="ENTID.J_ENT.HIERARCHY" />
</AttributeProjection>
<AttributeProjection Name="OBJ1780952202" LongName="" ShortName="OBJ1780952202" PluralName="OBJ1780952202" Id="ENTID.J_ENT.NIV1.OBJ1780952202.ATTRIBUTEPROJECTION" DataType="Text" Classification="USER" InstallAsRelation="false" IsDefaultOrder="false">
<Attribute XMLIDref="ENTID.SHORT_DESCRIPTION.ATTRIBUTE" />
<Level XMLIDref="ENTID.NIV1.LEVEL" />
<Hierarchy XMLIDref="ENTID.J_ENT.HIERARCHY" />
</AttributeProjection>
<SourceMappingGroup >
<DimensionMapGroup Name="MAPGROUP1" LongName="MAPGROUP1" ShortName="MAPGROUP1" PluralName="MAPGROUP1" Id="ENTID.J_ENT.NIV1.MAPGROUP1.DIMENSIONMAPGROUP" Type="HIERARCHYLEVEL">
<DimensionKeySourceExpression Name="KeyMap" LongName="KeyMap" ShortName="KeyMap" PluralName="KeyMap" Id="ENTID.J_ENT.NIV1.MAPGROUP1.KEYMAP.DIMENSIONKEYSOURCEEXPRESSION">
<SourceColumn Name="OBJ1780952205" LongName="" ShortName="OBJ1780952205" PluralName="OBJ1780952205" Id="ENTID.J_ENT.NIV1.MAPGROUP1.KEYMAP.OBJ1780952205.SOURCECOLUMN" Column="M62.ENTIDADES.ID_ENTIDAD"/>
<Level XMLIDref="ENTID.NIV1.LEVEL" />
<Hierarchy XMLIDref="ENTID.J_ENT.HIERARCHY" />
</DimensionKeySourceExpression>
<AttributeSourceExpression Name="AttrMap1" LongName="AttrMap1" ShortName="AttrMap1" PluralName="AttrMap1" Id="ENTID.J_ENT.NIV1.MAPGROUP1.ATTRMAP1.ATTRIBUTESOURCEEXPRESSION">
<SourceColumn Name="OBJ1780952207" LongName="" ShortName="OBJ1780952207" PluralName="OBJ1780952207" Id="ENTID.J_ENT.NIV1.MAPGROUP1.ATTRMAP1.OBJ1780952207.SOURCECOLUMN" Column="M62.ENTIDADES.DES_ENTIDAD_CAS"/>
<TargetObject XMLIDref="ENTID.J_ENT.NIV1.OBJ1780952201.ATTRIBUTEPROJECTION" />
<Level XMLIDref="ENTID.NIV1.LEVEL" />
<Hierarchy XMLIDref="ENTID.J_ENT.HIERARCHY" />
<BaseAttribute XMLIDref="ENTID.LONG_DESCRIPTION.ATTRIBUTE" />
</AttributeSourceExpression>
<AttributeSourceExpression Name="AttrMap2" LongName="AttrMap2" ShortName="AttrMap2" PluralName="AttrMap2" Id="ENTID.J_ENT.NIV1.MAPGROUP1.ATTRMAP2.ATTRIBUTESOURCEEXPRESSION">
<SourceColumn Name="OBJ1780952209" LongName="" ShortName="OBJ1780952209" PluralName="OBJ1780952209" Id="ENTID.J_ENT.NIV1.MAPGROUP1.ATTRMAP2.OBJ1780952209.SOURCECOLUMN" Column="M62.ENTIDADES.DEC_ENTIDAD_CAS"/>
<TargetObject XMLIDref="ENTID.J_ENT.NIV1.OBJ1780952202.ATTRIBUTEPROJECTION" />
<Level XMLIDref="ENTID.NIV1.LEVEL" />
<Hierarchy XMLIDref="ENTID.J_ENT.HIERARCHY" />
<BaseAttribute XMLIDref="ENTID.SHORT_DESCRIPTION.ATTRIBUTE" />
</AttributeSourceExpression>
</DimensionMapGroup>
</SourceMappingGroup>
<level XMLIDref="ENTID.NIV1.LEVEL" />
</HierarchyLevelAssociation>
</Hierarchy>
<MemberSelection >
<Level Name="NIV1" LongName="NIV1" ShortName="NIV1" PluralName="NIV1" Id="ENTID.NIV1.LEVEL" isDimensioned="false">
<AttributeProjection Name="OBJ1780952195" LongName="" ShortName="OBJ1780952195" PluralName="OBJ1780952195" Id="ENTID.NIV1.OBJ1780952195.ATTRIBUTEPROJECTION" DataType="Text" Classification="USER" InstallAsRelation="false" IsDefaultOrder="false">
<Attribute XMLIDref="ENTID.LONG_DESCRIPTION.ATTRIBUTE" />
<Level XMLIDref="ENTID.NIV1.LEVEL" />
</AttributeProjection>
<AttributeProjection Name="OBJ1780952196" LongName="" ShortName="OBJ1780952196" PluralName="OBJ1780952196" Id="ENTID.NIV1.OBJ1780952196.ATTRIBUTEPROJECTION" DataType="Text" Classification="USER" InstallAsRelation="false" IsDefaultOrder="false">
<Attribute XMLIDref="ENTID.SHORT_DESCRIPTION.ATTRIBUTE" />
<Level XMLIDref="ENTID.NIV1.LEVEL" />
</AttributeProjection>
</Level>
</MemberSelection>
</Dimension>
<Cube Name="CUBO_ENT" LongName="CUBO_ENT" ShortName="CUBO_ENT" PluralName="CUBO_ENT" Id="CUBO_ENT.CUBE" Schema="M62" UseGlobalIndex="false" SparseType="STANDARD" DefaultDataType="DECIMAL" AutoSolve="YES">
<SourceMappingGroup >
<CubeMapGroup Name="MAPGROUP1" LongName="MAPGROUP1" ShortName="MAPGROUP1" PluralName="MAPGROUP1" Id="CUBO_ENT.MAPGROUP1.CUBEMAPGROUP">
<CubeDimensionSourceExpression Name="KeyMap1" LongName="KeyMap1" ShortName="KeyMap1" PluralName="KeyMap1" Id="CUBO_ENT.MAPGROUP1.KEYMAP1.CUBEDIMENSIONSOURCEEXPRESSION">
<SourceColumn Name="OBJ1780952236" LongName="" ShortName="OBJ1780952236" PluralName="OBJ1780952236" Id="CUBO_ENT.MAPGROUP1.KEYMAP1.OBJ1780952236.SOURCECOLUMN" Column="M62.EMAITZA_E.ID_ENTIDAD"/>
<TargetObject XMLIDref="ENTID.DIMENSION" />
<Level XMLIDref="ENTID.NIV1.LEVEL" />
</CubeDimensionSourceExpression>
<MeasureSourceExpression Name="AttrMap1" LongName="AttrMap1" ShortName="AttrMap1" PluralName="AttrMap1" Id="CUBO_ENT.MAPGROUP1.ATTRMAP1.MEASURESOURCEEXPRESSION">
<SourceColumn Name="OBJ1780952238" LongName="" ShortName="OBJ1780952238" PluralName="OBJ1780952238" Id="CUBO_ENT.MAPGROUP1.ATTRMAP1.OBJ1780952238.SOURCECOLUMN" Column="M62.EMAITZA_E.CANTIDAD"/>
<TargetObject XMLIDref="CUBO_ENT.MED1.MEASURE" />
</MeasureSourceExpression>
</CubeMapGroup>
</SourceMappingGroup>
<SolveDefinition >
<AggregationDefinition Name="OBJ1780952211" LongName="" ShortName="OBJ1780952211" PluralName="OBJ1780952211" Id="CUBO_ENT.OBJ1780952211.AGGREGATIONDEFINITION" Schema="AW$DEFAULT" AggIndex="NA" CacheStore="SESSION" CacheNa="NA">
<CalculationSpecification >
<AggregationHierarchySpecification Name="Relation1" LongName="Relation1" ShortName="Relation1" PluralName="Relation1" Id="CUBO_ENT.OBJ1780952211.RELATION1.AGGREGATIONHIERARCHYSPECIFICATION" CalculationOrder="1">
<AggregationOperator >
<BaseOperator Name="Base Operator" LongName="Base Operator" ShortName="Base Operator" PluralName="Base Operator" Id="CUBO_ENT.OBJ1780952211.RELATION1.BASE OPERATOR.BASEOPERATOR" opcode="SUM"/>
</AggregationOperator>
<Dimension XMLIDref="ENTID.DIMENSION" />
<PreComputeClause Name="OBJ1780952231" LongName="" ShortName="OBJ1780952231" PluralName="OBJ1780952231" Id="CUBO_ENT.OBJ1780952211.RELATION1.OBJ1780952231.PRECOMPUTECLAUSE">
<DimensionMemberExpression Name="OBJ1780952232" LongName="" ShortName="OBJ1780952232" PluralName="OBJ1780952232" Id="CUBO_ENT.OBJ1780952211.RELATION1.OBJ1780952231.OBJ1780952232.DIMENSIONMEMBEREXPRESSION" ExpressionType="EXCLUDE" Expression="ALL"/>
</PreComputeClause>
</AggregationHierarchySpecification>
</CalculationSpecification>
<SolveDefDimRef Name="OBJ1780952226" LongName="" ShortName="OBJ1780952226" PluralName="OBJ1780952226" Id="CUBO_ENT.OBJ1780952211.OBJ1780952226.SOLVEDEFDIMREF" CalcMemberSolveOrder="0">
<Dimension XMLIDref="ENTID.DIMENSION" />
<SolveDefinition XMLIDref="CUBO_ENT.OBJ1780952211.AGGREGATIONDEFINITION" />
</SolveDefDimRef>
</AggregationDefinition>
</SolveDefinition>
<DefaultAggregationDefinition XMLIDref="CUBO_ENT.OBJ1780952211.AGGREGATIONDEFINITION" />
<CubeDimRef Name="OBJ1780952225" LongName="" ShortName="OBJ1780952225" PluralName="OBJ1780952225" Id="CUBO_ENT.OBJ1780952225.CUBEDIMREF" Sparse="true">
<Dimension XMLIDref="ENTID.DIMENSION" />
</CubeDimRef>
<Measure Name="MED1" LongName="MED1" ShortName="MED1" PluralName="MED1" Id="CUBO_ENT.MED1.MEASURE" DataType="DECIMAL" isInternal="false" UseGlobalIndex="false" ForceCalc="false" ForceOrder="false" SparseType="STANDARD" AutoSolve="AUTO_SOLVE"/>
<PartitionHierarchy XMLIDref="ENTID.J_ENT.HIERARCHY" />
<PartitionLevel XMLIDref="ENTID.NIV1.LEVEL" />
</Cube>
<ExtendedProperty Name="OBJ1780952192" LongName="" ShortName="OBJ1780952192" PluralName="OBJ1780952192" Id="OBJ1780952192.EXTENDEDPROPERTY" Creator="SYSTEM" ExtensionName="GLOBALATTRIBUTE" ExtensionValue="" ReferencedObjectId="ENTID.LONG_DESCRIPTION.ATTRIBUTE"/>
<ExtendedProperty Name="OBJ1780952193" LongName="" ShortName="OBJ1780952193" PluralName="OBJ1780952193" Id="OBJ1780952193.EXTENDEDPROPERTY" Creator="SYSTEM" ExtensionName="GLOBALATTRIBUTE" ExtensionValue="" ReferencedObjectId="ENTID.SHORT_DESCRIPTION.ATTRIBUTE"/>
</AW>
</ActiveObject>
</Create>
</AWXML.content>
</AWXML> -
Pl/sql package for use with workflow will not return a value
hi all,
just trying to intercept a requisition being turned into an order if it uses a certain cost code. so i have amended the workflow and created a package to check what cost centre a requisition is using. how over the workflow stops on the function that calls the package witha a status of complete as if the package is not returning any values.
the package is as below:
CREATE OR REPLACE PACKAGE APPS.xxhccWFcapitalcheck AS
procedure XXHCC_CHECK_CAPITAL(itemtype in varchar2,
itemkey in varchar2,
actid in number,
funcmode in varchar2,
resultout out NOCOPY vARCHAR2);
END xxhccWFcapitalcheck;
CREATE OR REPLACE PACKAGE BODY APPS.xxhccWFcapitalcheck AS
procedure XXHCC_CHECK_CAPITAL(itemtype in varchar2,
itemkey in varchar2,
actid in number,
funcmode in varchar2,
resultout out NOCOPY varchar2 ) is
x_progress varchar2(100);
x_resultout varchar2(30);
l_doc_mgr_return_val VARCHAR2(1);
l_doc_string varchar2(200);
l_preparer_user_name varchar2(100);
doc_manager_exception exception;
p_test varchar2(100);
l_req_id varchar2(30);
CURSOR p_line_id IS
SELECT
codes.segment2 cost_center
FROM
po_requisition_headers_all headers,
po_requisition_lines_all lines,
po_req_distributions_all dist,
gl_code_combinations_v codes
WHERE
headers.requisition_header_id = lines.requisition_header_id
AND
lines.requisition_line_id = dist.requisition_line_id
AND
dist.code_combination_id = codes.code_combination_id
AND
headers.segment1 = l_req_id;
line_rec p_line_id%rowtype;
BEGIN
-- Do nothing in cancel or timeout mode
--if (funcmode <> wf_engine.eng_run) then
-- resultout := wf_engine.eng_null;
-- return;
-- end if;
l_req_id := wf_engine.GetItemAttrNumber (itemtype => itemtype,
itemkey => itemkey,
aname => 'DOCUMENT_NUMBER');
--FOR line_rec in p_line_id
---loop
open p_line_id;
fetch p_line_id into l_doc_string;
close p_line_id;
IF p_line_id= 'Q9DEF'
dbms_output.put_line p_line_id;
Then resultout := 'COMPLETE:F';
return;
p_test := 'USE DIFFERENT CODE';
ELSE
resultout := 'COMPLETE:T';
return;
END IF;
END LOOP;
end;
END xxhccWFcapitalcheck;
any help would be great!Hi Community, first of all, english is not my native language and im not sure to use the correct terms for PowerCenter - so if im wrong please help me correct and make clear what we need. We have a kind of 3-steps ToDo. First step: Load data from an external source into a "local" datastore (its an oracle db on a server in our "hands")Second step: Check data against several verifications, this is done with a PL/SQL Package. The PL/SQL Package shall be called with an Interfacename who is set in the First PowerCenter Mapping. Our current thoghts are to do this via a stored procedure, which runs as "Target Post Load" and gets a variable "Interface Name".Is that possible? Im not quite sure about it. About the last part its even more unclear how we can solve it:Third part should be switch back to PowerCenter now - and the package (or to be correct a function in the package) should return a value for "okay everything fine => workflow continue" or "something happened => workflow is stopped" Im not sure how i can handle this. I hope my explanations are good enough so you can provide some help?!If there are any questions please ask! Thank you alot, best regards, Christian
-
How to create a dimension with one level
I created a cube with some dimensions, that have only a level, and this kind of dimensions bring me some problems when I want to use "OracleBI Spreadsheet Add-In" to consult the cube.
The problem is that I canât create a hierarchy with only a level, so the dimensions are created without a hierarchy.
When I make a query in the âQuery Builderâ of "OracleBI Spreadsheet Add-In", I have some problems in the step of choosing what levels I want to select for a determined dimension, if that dimension is a dimension without a hierarchy.
What really happens is that, I can see all the values for the level in the left box, but I donât achieve to put one of these values on the right box. I can click in the next button, to jump to the next dimension, and all the process of selection for the other dimensions occurs without problems, except for the dimensions that havenât a hierarchy.
If I select only dimensions that have a hierarchy, all works perfectly, but if I select one or more dimensions that donât have a hierarchy, the following problems occur:
=> I canât select the values of the level that I want to see (only for dimensions that donât have a hierarchy)
=> When I click in âendâ button of the âQuery Builderâ, it doesnât finish and blocks.
The solution is to create a hierarchy, but I canât create a hierarchy with only a level. Is it possible to create a âtop levelâ without a source column in the dimension table? So I will have two levels, and with these two levels I can create a hierarchy that resolves the problem.
What is the solution for this problem?
Regards,
Rui TorresHow I can resolve my problem?
I donât want to use the CWM2 PL/SQL packages, because with these packages I only can create MOLAP cubes.
I only want to create ROLAP cubes, but I can't create a hierarchy with one level.
Why the "OracleBI Spreadsheet Add-In" doesnât work with dimensions, that not have hierarchies?
How I can resolve this BIG problem?
It is very URGENT!!!!
Regards,
Rui Torres -
Problem populating date dimension with correct values
Hi all,
I have a 'simple' problem, but can't get it solved! The YTD calculations in the cube don't 'reset' at the right moment in time (they should 'reset' on the FISCAL year, but it actually seems to happen on the normal calendar year).
Our dimensions and cubes are MOLAP. There is a relational table, containing columns with values for both a CALendar hierarchy as well as for a FISCAL year hierarchy. This table populates the date dimension (only the fiscal hierarchy as in MOLAP we only have a fiscal hierarchy). The result looks correct in the data viewer.
The cube is populated from relational sources as well. One view provides the measure values and the CODE (business identifiers) values for each dimension involved. In case of the date dimension, it provides the code value for the involved level at which we load the cube (month).
I made a very simple testcase with only 1 dimension (date) and 1 small cube. The cube uses only the date dimesion (to load cube on the fiscal hierarchy at month level) and has 1 base measure that is loaded with a simple number and 1 calculated measure that calculates the YTD value for this base measure. The calculated measure is added in the OWB cube designer using button "Generate Calculated Measures" and choosing the "Year to Date" function.
When populating the cube and using the data viewer to check the results, the YTD measure values don't 'reset' at the fiscal year end. They seem to reset at the normal CALendar year end!?
After some testing, I have concluded it has to do with the values I supply to populate the date dimension, but I can't figure out what the modification should be and I can't find any examples anywhere.
Does anyone out there have a working YTD calculation in MOLAP?
Any help much appreciated.
Regards,
EdSorry David, I am not sure I've got this right yet. I am looking at using the cumsum function, but I am not sure how to apply this. That is, I can see examples (cumsum(measure, total_dim, reset_dim)), but I think I cannot put such formula directly into the expression editor for a cube measure in OWB?
Until now I have been using the standard available calculated measures in the OWB measure editor and I think they insert an xml template? I'll get the Excel Calculation Tool from OTN, to see if I can create the correct formula and paste that in OWB in the expression editor for the measure. (Does that tool need a ROLAP workspace or does it need / can it work with a MOLAP workspace?)
Thanks and regards,
Ed
Edited by: EdSp on Jan 13, 2009 1:57 PM
I have downloaded the Excel sheet and can see how it works, but it seems to "insert" the calculated measures straight into the AW. However we deploy the AW from OWB so I will be looking at getting something to enter/paste in the expression editor of OWB... -
Request failed with SID value not found
Hi Gurus, I have this error message "No SID found for value '15.00' of charateristic 0CURKEY_TC" and similar message with "10.00" and "*0.0" value, when trying to activate data in standard DSO in BI7.0.
This is a Dev system just setup for traning purposes so I do not have any Master data to load. I am only loading transactional data from DataSource 0PU_IS_PS_32
I tried searching for the answer and did the following
1) Transfer Global Settings from the source system (which solved other problems but not this one)
2) In RSRV, I do not see any errors for this InfoObject
3) I am not sure how I can update table T006 and or TCURC with these values?
I also tried following the Note: 619987 and does not know how I can implement this function module "If you nevertheless receive this error message for the initial value, this means that there is an inconsistency in the SID table for the 0UNIT or 0CURRENCY characteristic. You can eliminate this inconsistency by calling the RSDMD_INITIAL_LINE_INSERT function module with I_CHABASNM = 0UNIT or 0CURRENCY"
Is there any help that anybody can extend, it will be greatly appreciated.Dear,
SID error comes during activation of ODS because the related MD is not available for assigning SIDs.
So as a first step ensure that the related master data is loaded and Attribute change run has been triggered.
Or Load the MD and Activate the MD (Modeling > InfoObject > Search the Infoobject > Right click > Activate Master Data)
Once you perform this you can retrigger the activation. It should work fine.
Else as a workaround you can blank out these particular values and activate.
There is also one more workaround wherein you can create the Master data entries directly in BW itself. But both the above step should be done after consulting Business and considering data volume that needs to be edited/created.
In most case once you perform the loading and activation of MD your activation should work fine when repeated.
There are cases where it failed again with the same error. In that case try this also (ensure that PSA is there).
Delete the request in red.
Go to monitor
Edit > Setting for further update > Packet should be processed in the background.
Edit > Update Reversal > Read everything manually > Yes
Background processing successfully scheduled
Then you can see the Load running again.
Once this is done perform activation again
Hope it helps
Regards
Bala -
So I have a cache with 3 key/values in it.
If I call cache (over extend) with specific keys, i get all values back.
Object valueA = namedCache.get("A");
Object valueB = namedCache.get("B");
Object valueC = namedCache.get("C");
i.e. valueA/B/C are all not null.
If I now try to use keySet()/entrySet(), I only get 1 value back.
eg:
int cacheSize= namedCache.size(); //cache size is 3
int keySetSize = namedCache.keySet(); //cache size is 3
int actualKeySetSize = (new HashSet(namedCache.keySet())).size(); // actual size is 1
The same happens if I iterate over keyset/entryset, i.e. there is only 1 value in the result.
I have 2 storage nodes, JMX shows 1 node has 1 unit and other node shows cache has 2 units.
Are there any known bugs where above can occur, we are using Oracle Coherence GE 3.5.3/465p3.
i.e. keySet/entrySet not returning full result sets!
Cheers,
Neville.Apparently a timing issue between the "creation" of a cache, and the processing of requests against that cache. Because of the nature of the cache creation protocol, it is possible for the client creating the cache to return before all storage members have been notified of the cache name. It is therefore possible for cache requests to arrive at a storage member before that member has had a chance to instantiate its backing map.
Fix is part of 3.6.0 GA, and is now slated to be back ported for 3.5.3p8.
Have tested against 3.6 and all looks ok now. -
Problem with one song not matching (Led Zeppelin)
I own all the Led Zeppelin studio albums, which are all available in the iTunes store. Every song on these albums was matched, except Tangerine on the Led Zeppelin III album. Anyone else have this happen? It's just strange that it would happen with one song. I've seen a lot of people mention She Came In Through the Bathroom Window on the Beatles' Abbey Road album, and that one happened for me too. I don't get it! This is just strange.
The song that won't sync is probably unchecked. You can check/uncheck all displayed songs using ctrl-click on a checkbox, or if you want to find it then you can use some smart playlists. Create a smart playlist with the rule *Playlist is Music* and the option *Match only checked tracks* and call this playlist Checked. Now create a smart playlist matching all the rules *Playlist is Music* and *Playlist is not Checked* (if necessary clear the option to match checked tracks) and call this playlist Unchecked. All unchecked tracks will be here.
If that doesn't solve things then the other possibility that comes to mind is that you've created two library entries for the same physical file. In this case only one file is placed on the device during syncing. One way to narrow down the search for these entries is to hold down the shift key and then select *File... Display Exact Duplicates*. iTunes will display files with matching details, one pair of which could be the culprit. For each pair examine the Get Info. Summary tab to see if both have the same location. If so, delete one entry while not letting iTunes delete the underlying file so the other can remain connected.
tt2 -
Multiple invoice with one Debit note
Dear Experts,
Is it possible to create one single debit note with multiple invoices.
If yes how.
Thanks
Shri..Well Guys my question is if i am creating 10 invoices for same customer and with that 10 invoices i want to create one single debit note with reference to 10 invoices at a time.
Generally we create one debit not with reference to one bill doc nos.
Is is possible.coz reason here would be i want to give total discount to that particular 10 invoices.
What could be the settings.
Thanks
Shri.. -
Hello Experts,
I am new to apex.
I want to plot a pie chart with only one value.
that one value should look like a one slice in the pie chart.
I tried it, but it showing as entire pie chart as one value.
So Please help me in this regard.
Its very urgent.
Please.Hi,
Try creating the entire chart using custom XML and PL-SQL, it will give you full control over the sql and xml . Take look at this thread Re: Help Needed : Changing the Color of Bar Graph Dynamically , Change the data_plot_settings to line and you can refer to the http://www.anychart.com/products/anychart/docs/xmlReference/index.html for more detail on the tags and syntax. Thanks.
Regards,
Manish -
Can login with one laptop, not another
Two (long-winded) questions for you all:
1) Anyone know why I would be able to login to our domain from one laptop with a LEAP-enabled wireless card, but cannot login with another LEAP-enabled laptop sitting right next to it? I have pre-auth turned on for both laptops. Both laptops will query the ACS to get an address. Both pass 802.11/x credentials and receive IP addresses. One laptop (a Lenovo S12) can login users just fine. The other laptop is a Dell and will come back with "Domain is not available" after passing all of the pre-auth credentials.
I've made sure that the external database is pointing to the right groups in AD, but I do see authentication failures pop up on the WCS. The following is common:
Client '00:21:6a:28:56:4c (Admin, 10.172.1.14)' which was associated with interface '802.11b/g' of AP 'AP102' is excluded. The reason code is '4(802.1X Authentication failed 3 times.)'.
Remember, though, pre-auth is telling me that it does pass 802.1X authentication, and you can see that it does get an IP, so this error is conflicting. I also get a lot of these, too:
Client '00:21:6a:28:60:a8 ([email protected], 0.0.0.0)' which was associated with interface '802.11b/g' of AP 'AP102' is excluded. The reason code is '4(802.1X Authentication failed 3 times.)'.
I understand that it is trying to pass authentication for a device with no IP, but why does one login get an IP (as seen on the first message) and not another login (second message)? I get this with the same user name, not just when different people are trying. I can login to the Lenovo with [email protected], but I turn around and get "Domain is not available" on the Dell with the exact same AD account.
2) Here's another one that's baffling me: I have a user named [email protected]. When trying to auth to the domain, I see the following pop up in the event log on WCS (A LOT):
Client '00:1c:bf:96:d3:6a (..m [email protected], 0.0.0.0)' which was associated with interface '802.11b/g' of AP 'AP122' is excluded. The reason code is '4(802.1X Authentication failed 3 times.)'.
User authentication from Controller '10.5.1.11' failed for User name '..m [email protected]' and user type 'Network User'.
User authentication from Controller '10.5.1.11' failed for User name '.O. [email protected]' and user type 'Network User'.
Client '00:1c:bf:96:d3:6a (x.m [email protected], 0.0.0.0)' which was associated with interface '802.11b/g' of AP 'AP122' is excluded. The reason code is '4(802.1X Authentication failed 3 times.)'.
User authentication from Controller '10.5.1.11' failed for User name 'x.m [email protected]' and user type 'Network User'.
Why is it that the user tries to login with "[email protected]", but the controller thinks he's trying to use random ones, shown above?! His actual login name is no where in the logs at all. Thoughts on this one?!
To throw another kink into this, we can login all day long with other devices, like iPhones and Android phones and Linux (on the exact same machines that had previously "failed", mind you) and never get authentication errors or random drops. It's making me think it is a Windows driver issue, but I can have a driver work on one laptop and not another that is the exact same model... It's very confusing at the moment for me, sending me spinning in circles to try and find what's going on.
Thanks in advance for your help!Which operating system you are using?
What is the error you get while trying to connect like the network requires network key, or low wireles signal etc?
Also what is the model number of your router?
Please provide these details so that i can help you with this -
Restrict responsibility with one value set
Hi,
We have created a responsibility and we want that to have only one value set. When we add "Flexfield Value" menu to the responsibility it shows the query screen where users can access any value set.
Other than custom.pll or forms personalization, is there any other simple way?
Thanks.No, There is no simpler way to have only one value set.
-
Hi, below is my data model for SSAS 2008 on snowflake schema.
Below is SQL Server DW tables:
DimStudent - StudentID [primarykey], StudentName, DateOfBirth, AddressID
DimStudentAddresses - AddressID [primarykey], StudentID [foreignkey], ddressLine1, AddressLine2, AddressType
FactEnrolment - StudentID, EnrolWeek, EnrolFees
So here FactEnrolement.StudentID is joined to DimStudent.StudentID column,
and relationship between DimStudent & DimeStudentAddresses is one to many I.e. one student can have multiple addresses like primary or secondry address.
To design snowflake schema in SSAS 2008 BIDS project :
[Question-1] how to join one-to-many dimensions (NOT fact table) Like DimStudent & DimAddresses?
[Question-2] At the end I want to have a single dimension only I.e. Student which should have both DimStudent & DimStudentAddresses tables attributes init. So I can create hierarchy from these two table into a single dimension? How
to do this?
Please reply with feedback particular to my above scenario as I refereed other MSDN forums but nothing solid I found.
Any STEP-BY-STEP guideline please. Many thanks.Hello KM,
Have you solved this issue after refer to Bill's suggestion? Please let us know how things go.
If you have any feedback on our support, please click
here.
Best Regards,
Elvis Long
TechNet Community Support -
Cell with boolean value not rendering properly in Swing (custom renderer)
Hello All,
I have a problem rendenring boolean values when using a custom cell renderer inside a JTable; I managed to reproduce the issue with a dummy application. The application code follows:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.Logger;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
* Simple GUI that uses custom cell rendering
* @author josevnz
public final class SimpleGui extends JFrame {
private static final long serialVersionUID = 1L;
private Logger log = Logger.getLogger(SimpleGui.class.getName());
private JTable simpleTable;
public SimpleGui() {
super("Simple GUI");
setPreferredSize(new Dimension(500, 500));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
public void constructGui() {
simpleTable = new JTable(new SimpleTableModel());
simpleTable.getColumnModel().getColumn(2).setCellRenderer(new HasItCellRenderer());
SpecialCellRenderer specRen = new SpecialCellRenderer(log);
simpleTable.setDefaultRenderer(Double.class, specRen);
simpleTable.setDefaultRenderer(String.class, specRen);
simpleTable.setDefaultRenderer(Date.class, specRen);
//simpleTable.setDefaultRenderer(Boolean.class, specRen);
add(new JScrollPane(simpleTable), BorderLayout.CENTER);
pack();
setVisible(true);
private void populate() {
List <List<Object>>people = new ArrayList<List<Object>>();
List <Object>people1 = new ArrayList<Object>();
people1.add(0, "Jose");
people1.add(1, 500.333333567);
people1.add(2, Boolean.TRUE);
people1.add(3, new Date());
people.add(people1);
List <Object>people2 = new ArrayList<Object>();
people2.add(0, "Yes, you!");
people2.add(1, 100.522222);
people2.add(2, Boolean.FALSE);
people2.add(3, new Date());
people.add(people2);
List <Object>people3 = new ArrayList<Object>();
people3.add(0, "Who, me?");
people3.add(1, 0.00001);
people3.add(2, Boolean.TRUE);
people3.add(3, new Date());
people.add(people3);
List <Object>people4 = new ArrayList<Object>();
people4.add(0, "Peter Parker");
people4.add(1, 11.567444444);
people4.add(2, Boolean.FALSE);
people4.add(3, new Date());
people.add(people4);
((SimpleTableModel) simpleTable.getModel()).addAll(people);
* @param args
* @throws InvocationTargetException
* @throws InterruptedException
public static void main(String[] args) throws InterruptedException, InvocationTargetException {
final SimpleGui instance = new SimpleGui();
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
instance.constructGui();
instance.populate();
}I decided to write a more specific renderer just for that column:
import java.awt.Color;
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableCellRenderer;
* Cell renderer used only by the DividendElement table
* @author josevnz
final class HasItCellRenderer extends DefaultTableCellRenderer {
protected static final long serialVersionUID = 2596173912618784286L;
private Color hasIt = new Color(255, 225, 0);
public HasItCellRenderer() {
super();
setOpaque(true);
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component comp = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
int desCol = table.convertColumnIndexToView(1);
if (! isSelected && value instanceof Boolean && column == desCol) {
if (((Boolean) value).booleanValue()) {
comp.setForeground(hasIt);
} else {
comp.setForeground(UIManager.getColor("table.foreground"));
return comp;
* Override for performance reasons
@Override
public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) {
// EMPTY
@Override
protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
// EMPTY
@Override
public void revalidate() {
// EMPTY
@Override
public void validate() {
// EMPTY
} // end classBut the rendering comes all wrong (a String saying true or false, not the expected checkbox from the default renderer) and also there is a weird flickring effect as this particular boolean column is editable (per table model, not show here)...
I can post the table model and the other renderer if needed (didn't want to put too much code on the question, at least initiallty).
Should I render a checkbox myself for this cell in the custom renderer? I'm puzzled as I expected the default renderer part of the code to do this for me instead.
Thanks!
Edited by: josevnz on Apr 14, 2009 12:35 PM
Edited by: josevnz on Apr 14, 2009 12:37 PMcamickr
Thats because the default render is a JLabel and it just displays the text from the toString() method of the Object in the table model.What I meant to say is that I expected the JCheckbox not a String representation of the boolean value.
Thats because a different renderer is used depending on the Class of data in the column. Look at the source code for the JTable class to see what the "default >renderer for the Boolean class" is. Then you can extend that or if its a private class then you will need to copy all the code and customize it.At the end I looked at the code and replicated the functionality I needed. I thought than maybe there was a way to avoid replicating the same logic all over again in order to implement this functionality. Good advice, though.
see you learned nothing from your last posting. This is NOT a SSCCE. 90% of the code you posted is completely irrelevant for the described problem. There is abosutelly no need to post the custom TableModel, because there is no need to use a custom TableModel for this problem. The TableModel has nothing to do with how a column is rendererd.The custom table model returns the type of the column (giving a hint to the renderer on what to expect, right?) and for the one that had a problem it says than the class is Boolean. That's why I mentioned it:
public Class getColumnClass(int columnIndex) {
// Code omited....
You also posted data for 4 columns worth of data. Again, irrelevant. Your question is about a single column containing Boolean data, so forget about the other columns.
When creating a SSCCE you don't start with your existing code and "remove" code. You start with a brand new class and only add in what is important. That way hopefully if you made a mistake the first time you don't repeat it the second time.That's what I did, is not the real application. I copy & pasted code in a haste from this dummy program on this forum, not the best approach as it gave the wrong impression.
Learn how to write a proper SSCCE if you want help in the future. Point taken, but there is NO need for you to be rude. Your help is appreciated.
Regards,
Jose. -
[8i] Best way to replace "similar" values with one value...?
Below is some sample data:
Sorry for the large set / complex set of sample data, but there should be no need to go through it in detail =).
2 things to keep in mind:
1) This is an 8i db
2) I cannot create any new tables within this db, though I can create views
CREATE TABLE ord_master
( part_nbr CHAR(25)
, ord_nbr CHAR(10)
, sub_ord_nbr CHAR(3)
, ord_type CHAR(2)
, ord_stat CHAR(2)
, date_closed DATE
-- please note, though none of the columns in ord_master are explicitly defined as NOT NULL,
-- none of them are NULL in the db, and given how things are input into the table, I don't
-- even think it's possible
-- a unique order is described by ord_nbr, sub_ord_nbr. there should only be one record in
-- this table for a given unique combination of those columns, though they are not the p.k.
-- NOTE: dates default to 12/31/1900, so in the table above, if an order is still open (thus,
-- not closed), it's date_closed will be 12/31/1900. It will only change once the order closes.
INSERT INTO ord_master
VALUES ('ABC-123','1','1','AA','CL',TO_DATE('05/01/2009','mm/dd/yyyy'));
INSERT INTO ord_master
VALUES ('ABC-123','1','2','AA','CL',TO_DATE('9/14/2009','mm/dd/yyyy'));
INSERT INTO ord_master
VALUES ('ABC-123','2','1','AA','CL',TO_DATE('12/03/2009','mm/dd/yyyy'));
INSERT INTO ord_master
VALUES ('ABC-123','3','1','AA','OP',TO_DATE('12/31/1900','mm/dd/yyyy'));
INSERT INTO ord_master
VALUES ('ABC-123','4','1','AA','CL',TO_DATE('03/12/2004','mm/dd/yyyy'));
INSERT INTO ord_master
VALUES ('XYZ-123','5','1','AA','CL',TO_DATE('03/12/2004','mm/dd/yyyy'));
CREATE TABLE op_detail
( ord_nbr CHAR(10)
, sub_ord_nbr CHAR(3)
, major_seq_nbr CHAR(4)
, wctr_id CHAR(5)
, oper_stat CHAR(2)
, plan_su_rsrc NUMBER(5,2)
, plan_run_rsrc NUMBER(11,8)
, plan_subc_amt NUMBER(15,5)
, act_su_rsrc NUMBER(5,2)
, act_run_rsrc NUMBER(7,2)
, act_subc_amt NUMBER(15,2)
, act_start_dt DATE
, dt_completed DATE
, qty_planned NUMBER(13,4)
, qty_recvd NUMBER(13,4)
, qty_complete NUMBER(13,4)
, qty_scrap NUMBER(13,4)
, qty_on_hold NUMBER(13,4)
-- similar to ord_master, thought none of the columns are explicitly defined as NOT NULL,
-- none of the records have NULL values for any of these columns, and I don't think it's
-- really possible with the way the system is
INSERT INTO op_detail
VALUES ('1', '1', '0081', 'X516 ', 'CP', 0, 0, 0, 0, .2, 0, TO_DATE('02/03/2010', 'mm/dd/yyyy'), TO_DATE('02/03/2010', 'mm/dd/yyyy'), 3, 3, 3, 0, 0);
INSERT INTO op_detail
VALUES ('1', '1', '0324', 'Y000 ', 'CP', .1, .2, 0, 0, .87, 0, TO_DATE('04/06/2010', 'mm/dd/yyyy'), TO_DATE('04/06/2010', 'mm/dd/yyyy'), 3, 3, 3, 0, 0);
INSERT INTO op_detail
VALUES ('1', '1', '0170', 'X928 ', 'CP', 0, 0, 9.6, 0, 0, 159, TO_DATE('03/05/2010', 'mm/dd/yyyy'), TO_DATE('03/05/2010', 'mm/dd/yyyy'), 3, 3, 3, 0, 0);
INSERT INTO op_detail
VALUES ('1', '1', '0130', 'H211 ', 'CP', .5, .1, 0, .08, .63, 0, TO_DATE('02/10/2010', 'mm/dd/yyyy'), TO_DATE('02/10/2010', 'mm/dd/yyyy'), 3, 3, 3, 0, 0);
INSERT INTO op_detail
VALUES ('1', '2', '0120', 'H214 ', 'CP', .3, .05, 0, 0, .68, 0, TO_DATE('05/22/2009', 'mm/dd/yyyy'), TO_DATE('05/22/2009', 'mm/dd/yyyy'), 3, 3, 3, 0, 0);
INSERT INTO op_detail
VALUES ('1', '2', '0122', 'T203 ', 'CP', 2.5, 1, 0, .67, .3, 0, TO_DATE('05/28/2009', 'mm/dd/yyyy'), TO_DATE('05/28/2009', 'mm/dd/yyyy'), 3, 3, 3, 0, 0);
INSERT INTO op_detail
VALUES ('1', '2', '0130', 'H211 ', 'CL', .5, .1, 0, .67, .3, 0, TO_DATE('05/28/2009', 'mm/dd/yyyy'), TO_DATE('05/28/2009', 'mm/dd/yyyy'), 3, 3, 3, 0, 0);
INSERT INTO op_detail
VALUES ('1', '2', '0170', 'X928 ', 'CP', 0, 0, 9.6, 0, 0, 153.12, TO_DATE('06/10/2009', 'mm/dd/yyyy'), TO_DATE('06/10/2009', 'mm/dd/yyyy'), 3, 3, 3, 0, 0);
INSERT INTO op_detail
VALUES ('1', '2', '0324', 'Y000 ', 'CP', .1, .2, 0, 0, .08, 0, TO_DATE('06/17/2009', 'mm/dd/yyyy'), TO_DATE('06/17/2009', 'mm/dd/yyyy'), 3, 3, 3, 0, 0);
INSERT INTO op_detail
VALUES ('2', '1', '0081', 'X516 ', 'CL', 0, 0, 0, 0, 0, 0, TO_DATE('07/20/2009', 'mm/dd/yyyy'), TO_DATE('07/20/2009', 'mm/dd/yyyy'), 4, 4, 4, 0, 0);
INSERT INTO op_detail
VALUES ('2', '1', '0324', 'Y000 ', 'CL', .1, .2, 0, 0, 3.03, 0, TO_DATE('09/11/2009', 'mm/dd/yyyy'), TO_DATE('09/11/2009', 'mm/dd/yyyy'), 4, 4, 4, 0, 0);
INSERT INTO op_detail
VALUES ('2', '1', '0170', 'X928 ', 'CP', 0, 0, 9.6, 0, 0, 204.16, TO_DATE('08/11/2009', 'mm/dd/yyyy'), TO_DATE('08/11/2009', 'mm/dd/yyyy'), 4, 4, 4, 0, 0);
INSERT INTO op_detail
VALUES ('2', '1', '0130', 'H211 ','CP', .5, .1, 0, 1.97, 2.67, 0, TO_DATE('07/28/2009', 'mm/dd/yyyy'), TO_DATE('07/29/2009', 'mm/dd/yyyy'), 4, 4, 4, 0, 0);
INSERT INTO op_detail
VALUES ('3', '1', '0170', 'X928 ', 'CP', 0, 0, 9.6, 0, 0, 255.2, TO_DATE('11/06/2009', 'mm/dd/yyyy'), TO_DATE('11/06/2009', 'mm/dd/yyyy'), 5, 5, 5, 0, 0);
INSERT INTO op_detail
VALUES ('3', '1', '0130', 'H212 ', 'CP', .5, .1, 0, .6, .03, 0, TO_DATE('10/21/2009', 'mm/dd/yyyy'), TO_DATE('10/21/2009', 'mm/dd/yyyy'), 5, 5, 5, 0, 0);
INSERT INTO op_detail
VALUES ('3', '1', '0550', 'R501 ', 'WK', 1, 16, 0, 2.2, 12.4, 0, TO_DATE('05/19/2010', 'mm/dd/yyyy'), TO_DATE('12/31/1900', 'mm/dd/yyyy'), 5, 5, 5, 0, 0);
INSERT INTO op_detail
VALUES ('3', '1', '0324', 'Y000 ', 'CL', .1, .2, 0, 0, .07, 0, TO_DATE('02/04/2010', 'mm/dd/yyyy'), TO_DATE('02/04/2010', 'mm/dd/yyyy'), 5, 5, 5, 0, 0);
INSERT INTO op_detail
VALUES ('4', '1', '0324', 'Y000 ', 'CP', .1, .2, 0, 0, .59, 0, TO_DATE('02/06/2004', 'mm/dd/yyyy'), TO_DATE('02/06/2004', 'mm/dd/yyyy'), 4, 4, 4, 0, 0);This is the query I'm working with right now:
SELECT o.part_nbr
, s.major_seq_nbr AS op_nbr
, CASE -- CASE statement to replace similar-to wctr_id's with a single new wctr_id, so we can treat them as the same
WHEN s.wctr_id IN ('H211','H212')
THEN 'Z211'
ELSE s.wctr_id
END AS wctr
, MIN(s.plan_su_rsrc) AS min_plan_setup
, AVG(s.plan_su_rsrc) AS avg_plan_setup
, MAX(s.plan_su_rsrc) AS max_plan_setup
, STDDEV(s.plan_su_rsrc) AS sdev_plan_setup
, MIN(s.plan_run_rsrc) AS min_plan_run
, AVG(s.plan_run_rsrc) AS avg_plan_run
, MAX(s.plan_run_rsrc) AS max_plan_run
, STDDEV(s.plan_run_rsrc) AS sdev_plan_run
, MIN(s.plan_subc_amt) AS min_plan_subc
, AVG(s.plan_subc_amt) AS avg_plan_subc
, MAX(s.plan_subc_amt) AS max_plan_subc
, STDDEV(s.plan_subc_amt) AS sdev_plan_subc
, MIN(s.act_su_rsrc) AS min_act_setup
, AVG(s.act_su_rsrc) AS avg_act_setup
, MAX(s.act_su_rsrc) AS max_act_setup
, STDDEV(s.act_su_rsrc) AS sdev_act_setup
, MIN(s.act_run_rsrc) AS min_act_run
, AVG(s.act_run_rsrc) AS avg_act_run
, MAX(s.act_run_rsrc) AS max_act_run
, STDDEV(s.act_run_rsrc) AS sdev_act_run
, MIN(s.act_subc_amt) AS min_act_subc
, AVG(s.act_subc_amt) AS avg_act_subc
, MAX(s.act_subc_amt) AS max_act_subc
, STDDEV(s.act_subc_amt) AS sdev_act_subc
, MIN(s.act_start_dt) AS min_start
, MAX(s.act_start_dt) AS max_start
, MIN(s.dt_completed) AS min_comp
, MAX(s.dt_completed) AS max_comp
, MIN(s.qty_planned) AS min_qty_plan
, AVG(s.qty_planned) AS avg_qty_plan
, MAX(s.qty_planned) AS max_qty_plan
, STDDEV(s.qty_planned) AS sdev_qty_plan
, MIN(s.qty_recvd) AS min_qty_recvd
, AVG(s.qty_recvd) AS avg_qty_recvd
, MAX(s.qty_recvd) AS max_qty_recvd
, STDDEV(s.qty_recvd) AS sdev_qty_recvd
, MIN(s.qty_complete) AS min_qty_comp
, AVG(s.qty_complete) AS avg_qty_comp
, MAX(s.qty_complete) AS max_qty_comp
, STDDEV(s.qty_complete) AS sdev_qty_comp
, MIN(s.qty_scrap) AS min_qty_scrap
, AVG(s.qty_scrap) AS avg_qty_scrap
, MAX(s.qty_scrap) AS max_qty_scrap
, STDDEV(s.qty_scrap) AS sdev_qty_scrap
, MIN(s.qty_on_hold) AS min_qty_hold
, AVG(s.qty_on_hold) AS avg_qty_hold
, MAX(s.qty_on_hold) AS max_qty_hold
, STDDEV(s.qty_on_hold) AS sdev_qty_hold
, COUNT(*) AS rec_cnt
, CASE
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-12)
THEN '12 mos. back'
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-24)
THEN '24 mos. back'
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-36)
THEN '36 mos. back'
ELSE '37 mos. back +'
END AS time_period
FROM ord_master o
, op_detail s
, ( -- begin in-line view a, to get the min act_start_dt for each order
SELECT s1.ord_nbr
, s1.sub_ord_nbr
, MIN (
CASE
WHEN s1.act_start_dt > TO_DATE('01/01/2000','mm/dd/yyyy')
THEN s1.act_start_dt
END
) AS ord_min_start
FROM op_detail s1
GROUP BY s1.ord_nbr
, s1.sub_ord_nbr
) a -- end in-line view a
WHERE o.ord_nbr = s.ord_nbr
AND o.sub_ord_nbr = s.sub_ord_nbr
AND o.ord_nbr = a.ord_nbr
AND o.sub_ord_nbr = a.sub_ord_nbr
AND o.ord_type = 'AA'
AND o.ord_stat IN ('CL','OP')
AND s.oper_stat IN ('CL','CP')
GROUP BY o.part_nbr
, s.major_seq_nbr
, CASE -- CASE statement to replace similar-to wctr_id's with a single new wctr_id, so we can treat them as the same
WHEN s.wctr_id IN ('H211','H212')
THEN 'Z211'
ELSE s.wctr_id
END
, CASE
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-12)
THEN '12 mos. back'
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-24)
THEN '24 mos. back'
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-36)
THEN '36 mos. back'
ELSE '37 mos. back +'
END
ORDER BY o.part_nbr
, CASE
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-12)
THEN '12 mos. back'
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-24)
THEN '24 mos. back'
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-36)
THEN '36 mos. back'
ELSE '37 mos. back +'
END
, s.major_seq_nbrThis gives me a bunch of descriptive statistics on some data stored in the database, broken into groups by the time period.
I have 7 sets of possible values for the column wctr_id that are groups of similar/same work centers, and should be treated as the same, assuming the ord_nbr, sub_ord_nbr, and major_seq_nbr are the same. In my example case statement above, anytime I find 'H211' or 'H212', I am replacing it with 'Z211', which is my new, unique identifier for any wctr in the group ('H211', 'H212'). I have 7 of these sorts of groups that need to be replaced by a new, unique identifier. Is my CASE statement (noted above) the best way to do this, or is there a better way? These groups of similar-to wctr_id's are not listed in a table anywhere.Hi,
As always, thanks for posting the CREATE TABLE and INSERT statements; that's very helpful, and leads to faster, better solutions.
Another thing that is helpful, and promotes faster, better solutions, is to simplify your problem.
For example, you have to compute a lot of aggregates, but it looks like you already know how to do that. This problem only involves the CASE expressions, and how they interact with the GROUP BY clause. So just cut out most of the aggregate functions.
Also, it looks like the intricacies of in-line view a have nothing to do with your current problem. For purposes of posting this problem, pretend that a is a regular view, so it doesn't clutter up the main query.
I think your problem could be restated like this:
You already have a query like this:
CREATE OR REPLACE VIEW a
AS
SELECT s1.ord_nbr
, s1.sub_ord_nbr
, MIN (
CASE
WHEN s1.act_start_dt > TO_DATE('01/01/2000','mm/dd/yyyy')
THEN s1.act_start_dt
END
) AS ord_min_start
FROM op_detail s1
GROUP BY s1.ord_nbr
, s1.sub_ord_nbr
SELECT o.part_nbr
, s.major_seq_nbr AS op_nbr
, CASE -- CASE statement to replace similar-to wctr_id's with a single new wctr_id, so we can treat them as the same
WHEN s.wctr_id IN ('H211','H212')
THEN 'Z211'
ELSE s.wctr_id
END AS wctr
, MIN(s.plan_su_rsrc) AS min_plan_setup
-- lots of other agtgregates go here in real query
, CASE
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-12)
THEN '12 mos. back'
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-24)
THEN '24 mos. back'
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-36)
THEN '36 mos. back'
ELSE '37 mos. back +'
END AS time_period
FROM ord_master o
, op_detail s
, a -- in real query, a is an in-line view
WHERE o.ord_nbr = s.ord_nbr
AND o.sub_ord_nbr = s.sub_ord_nbr
AND o.ord_nbr = a.ord_nbr
AND o.sub_ord_nbr = a.sub_ord_nbr
AND o.ord_type = 'AA'
AND o.ord_stat IN ('CL','OP')
AND s.oper_stat IN ('CL','CP')
GROUP BY o.part_nbr
, s.major_seq_nbr
, CASE -- CASE statement to replace similar-to wctr_id's with a single new wctr_id, so we can treat them as the same
WHEN s.wctr_id IN ('H211','H212')
THEN 'Z211'
ELSE s.wctr_id
END
, CASE
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-12)
THEN '12 mos. back'
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-24)
THEN '24 mos. back'
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-36)
THEN '36 mos. back'
ELSE '37 mos. back +'
END
ORDER BY o.part_nbr
, CASE
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-12)
THEN '12 mos. back'
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-24)
THEN '24 mos. back'
WHEN a.ord_min_start > ADD_MONTHS(SYSDATE,-36)
THEN '36 mos. back'
ELSE '37 mos. back +'
END
, s.major_seq_nbr
;that produces this output:
` MIN_
PLAN_
PART_NBR OP_N WCTR SETUP TIME_PERIOD
ABC-123 0081 X516 .0 12 mos. back
ABC-123 0130 Z211 .5 12 mos. back
ABC-123 0170 X928 .0 12 mos. back
ABC-123 0324 Y000 .1 12 mos. back
ABC-123 0120 H214 .3 24 mos. back
ABC-123 0122 T203 2.5 24 mos. back
ABC-123 0130 Z211 .5 24 mos. back
ABC-123 0170 X928 .0 24 mos. back
ABC-123 0324 Y000 .1 24 mos. back
ABC-123 0324 Y000 .1 37 mos. back +The output is correct; the problem is, can we get the same results without 2 copies of the wctr CASE expression, and 3 copies of the time_period CASE expression?
Is that a fair description of the problem?
For starters, you can use column aliases in the ORDER BY clause. Unfortunately, that's the only place where you can use column aliases in the same query where they are defined . You can compute them in a sib-query, and then use them in super-queries.
In other words, wouldn't it be nice if we had a table just like op_detail, but with an additional column called wctr? Make a view: either a regular view (especially if wctr, computed the same way, will be used in several different queries) or an in-line view, as shown below.
Wouldn't it be great if there was a table that was just like a, except that it had time_period alreay computed? Make a view: either a regular view or an in-line view, as shown below.
SELECT o.part_nbr
, s.major_seq_nbr AS op_nbr
, s.wctr
, MIN(s.plan_su_rsrc) AS min_plan_setup
-- lots of other agtgregates go here in real query
, a2.time_period
FROM ord_master o
, ( -- Begin in-line view s, with data from op_detail
SELECT op_detail.* -- or list all columns needed in main query
, CASE -- replace similar-to wctr_id's with a single new wctr_id, so we can treat them as the same
WHEN wctr_id IN ('H211','H212')
THEN 'Z211'
ELSE wctr_id
END AS wctr
FROM op_detail
) s -- End in-line view s, with data from op_detail
, ( -- Begin in-line view a2, to compute time_period
SELECT a.*
, CASE
WHEN ord_min_start > ADD_MONTHS(SYSDATE,-12)
THEN '12 mos. back'
WHEN ord_min_start > ADD_MONTHS(SYSDATE,-24)
THEN '24 mos. back'
WHEN ord_min_start > ADD_MONTHS(SYSDATE,-36)
THEN '36 mos. back'
ELSE '37 mos. back +'
END AS time_period
FROM a -- in real query, a is an in-line view
) a2 -- End in-line view a2, to compute time_period
WHERE o.ord_nbr = s.ord_nbr
AND o.sub_ord_nbr = s.sub_ord_nbr
AND o.ord_nbr = a2.ord_nbr
AND o.sub_ord_nbr = a2.sub_ord_nbr
AND o.ord_type = 'AA'
AND o.ord_stat IN ('CL','OP')
AND s.oper_stat IN ('CL','CP')
GROUP BY o.part_nbr
, s.major_seq_nbr
, s.wctr
, a2.time_period
ORDER BY o.part_nbr
, a2.time_period
, s.major_seq_nbr
;In your example, wctr is the same as wctr_id except for two values. If it was more complicated (e.g., if there were not just 2 values that need to be mapped to 'Z211', but also 3 values to were equivalent to 'Z987', and 1 that was to be treated like 'A012', and 5 that should appear as 'A666', and ...), then you could code all that in a humongeous CASE expression (a nested CASE expression, if it involves more that 128 branches), but it really belongs in a table, where you have the raw wctr_id (like 'H211') in one column, and its corresponding equivalent (such as 'Z211') in another. I know you said you can't create new tables; I'm just pointing this out so you can tell the people who won't let you create new tables that it's a bad idea, likely to cause errors and certain to waste time in the future.
Maybe you are looking for
-
I'm trying to replace the battery on my mid 2010 13-inch Macbook. I'm not sure what kind of battery I need to get, and can't seem to find any indication in "System Information". It's a "MacBook7,1" with Intel Core 2 Duo and Processor Speed: 2.4 GHz.
-
How can I transfer my apps from one Itune to another ?
Hi, I got a G4 on witch My Iphone & I pod are sync. I've just bought MBP installed without tranfering accounts. My apps won't update asking the MacItune to update and I'd love to recycle my G4 ! anybodi has an idea? Thanks
-
Using Windows 8.1 With Older Domain Controllers
Is there any document that would specify types of incompatibility we might expect when using Windows 8.1 with older domain controllers, either Windows 2000 or Windows 2003? I assume at minimum that these older domain controllers would not have gr
-
Start perticulat instance on unix environment
I have oracle 7i,8i,9i instance on same machine i want to start perticular instance . please tell me step to do it. Thanks
-
Officejet 8600 won't print since Yosemite upgrade
I have a problem installing the HP driver since I updated Yosemite. I get these messages. So I can't install properly. I have delted the printer in the system preferences, repaired disk permissions, and reinstalled 3.0 driver. The messages above are