Lookup Vs Join
Hi,
I want to know the basic difference between Lookup and Join in odi.
Thanks
Papai wrote:
Hi Bhabani,
I have checked this but if you provide some theoretical knowledge it will be more helpful Theoretically the lookup is doing a join, you get additional configuration to configure how it is implemented but the end result is the same.
because I am unable understand the generated code.This is going to be an issue in the long run (ODI generates code to do all of its actions) , to really know the difference in this case I would do a little reading on :
Join types (full, inner, outer, left, right etc)
Correlated and Nested Subqueries (as per one of the results in the link given to you above).
If you nail those two, you will be able to look at the generated code and decide which implementation technique is right for YOU on your environment, it wont be the same for everyone one..... which leads me to suggest you look at Explain plans , Oracle optimizer and how to do basic SQL Performance comparison - this will help you decide which method you use.
BTW - In 10G we used to do all the lookups we ever needed, using Joins. We can also manually define nested/correlated select statements for an individual column in the target datastore - its just we needed to manually type it out :-)
Similar Messages
-
Diff b/w lookup and join in odi
Hi friends,
I am new to ODI ,
Please can anyone explain the difference between "join" and "lookup" ?
Thanks in advance !
CnuHi,
Have a look
https://forums.oracle.com/thread/2470379
Thanks -
We are using OWB repository 10.2.0.2.0 and OWB client 10.2.0.2.8. The Oracle version is 10 G (10.2.0.2.0). OWB is installed on Sun 64 bit server.
As we use lookup in OWB mapping, We can use the lookup tables/source table to create a View as Join with source and lookup table in Database. The created view could be a source for OWB mapping. This will help us to have less lookups in OWB mapping. As we Join the lookup in Database server, we could get better performance.
Did any one in this forum use above approach in large projects?
Any idea?
What is the best approach, when lookup returns multiple values for single lookup key?
Thanks in advance.
RIHi RI,
This will help us to have less lookups in OWB mapping. As we Join the lookup in Database server, we could get better performance.
Did any one in this forum use above approach in large projects?OWB uses Oracle database as ETL-engine and in case of Set based execution mode (for PL/SQL mapping) you will not get better performance with view (when used instead of lookup of join operators).
Additional negative impact of "view" approach is lost of complete info for Lineage/Impact analysis (I think that for large projects this is a very helpful features).
What is the best approach, when lookup returns multiple values for single lookup key?I think this is design mistake - you should define unique key on lookup table
Regards,
Oleg -
Consistency Warning - [39008] Dimension Table not joined to Fact Source
I have a schema in which I have the following tables:
A) Patient Transaction Fact Table (i.e. supplies used, procedures performed, etc.)
B) Demographic Dimension table (houses info like patient location code)
C) Location Dimension table (tells me what Hospital each unique Location maps to)
So table A is the fact, and table B is a dimension table joined to table A based on Patient ID, so I can get general info on the patient. This would allow me to apply logic to just see patient transactions where the patient was FEMALE, or was in the Emergency Room, by applying conditions to these fields in table B.
Table C is a simple lookup table joined to table B by Location Code, so I can identify which hospital's emergency room the patient was located in for instance.
So the schema is: A<---B<---C, where B and C are both dimension tables.
The query works as desired, but my consistency check gives me the following WARNING:
*[39008] Logical dimension table LOCATION MASTER D has a source LOCATION MASTER D that does not join to any fact source.*
How do I resolve this WARNING, or at least suppress it?Hi,
What you need to do is to add the (physical) location dimension table to the logical table source of the demographic dimension, for example by dragging it from physical layer on top of logical table source of demographic logical dimension table in bmm layer
Regards,
Stijn -
Join two source tables and replicat into a target table with BLOB
Hi,
I am working on an integration to source transaction data from legacy application to ESB using GG.
What I need to do is join two source tables (to de-normalize the area_id) to form the transaction detail, then transform by concatenate the transaction detail fields into a value only CSV, replicate it on the target ESB IN_DATA table's BLOB content field.
Based on what I had researched, lookup by join two source tables require SQLEXEC, which doesn't support BLOB.
What alternatives are there and what GG recommend in such use case?
Any helpful advice is much appreciated.
thanks,
XiaocunXiaocun,
Not sure what you're data looks like but it's possible the the comma separated value (CSV) requirement may be solved by something like this in your MAP statement:
colmap (usedefaults,
my_blob = @STRCAT (col02, ",", col03, ",", col04)
Since this is not 1:1 you'll be using a sourcedefs file, which is nice because it will do the datatype conversion for you under the covers (also a nice trick when migrating long raws to blobs). So col02 can be varchar2, col03 a number, and col04 a clob and they'll convert in real-time.
Mapping two tables to one is simple enough with two MAP statements, the harder challenge is joining operations from separate transactions because OGG is operation based and doesn't work on aggregates. It's possible you could end up using a combination of built in parameters and funcations with SQLEXEC and SQL/PL/SQL for more complicated scenarios, all depending on the design of the target table. But you have several scenarios to address.
For example, is the target table really a history table or are you actually going to delete from it? If just the child is deleted but you don't want to delete the whole row yet, you may want to use NOCOMPRESSDELETES & UPDATEDELETES and COLMAP a new flag column to denote it was deleted. It's likely that the insert on the child may really mean an update to the target (see UPDATEINSERTS).
If you need to update the LOB by appending or prepending new data then that's going to require some custom work, staging tables and a looping script, or a user exit.
Some parameters you may want to become familiar with if not already:
COLS | COLSEXCEPT
COLMAP
OVERRIDEDUPS
INSERTDELETES
INSERTMISSINGUPDATES
INSERTUPDATES
GETDELETES | IGNOREDELETES
GETINSERTS | IGNOREINSERTS
GETUPDATES | IGNOREUPDATES
Good luck,
-joe -
How to use two lookup in single interface in ODI 11g
Hi All,
I am trying to load GL_CODE_COMBINATIONS CC + FND_FLEX_VALUES_VL FF to target table W_GL_CODE_COMBINATIONS.
I duplicated FND_FLEX_VALUES_VL as FND_FLEX_VALUES_VL1 FF1 for my join condition.
In target table I have included 2 new columns named SEGMENT2_DESC and SEGMENT3_DESC.
In my interface i am using FND_FLEX_VALUES_VL as lookup and join condition is CC.SEGMENT2=FF.FLEX_VALUE
Mapping expression of target column SEGMENT2_DESC is FF.DESCRIPTION.
In my interface i am using FND_FLEX_VALUES_VL1 as lookup and join condition is CC.SEGMENT3=FF1.FLEX_VALUE
Mapping expression of target column SEGMENT3_DESC is FF1.DESCRIPTION.
Execution of this interface taking more time. When using single lookup and SEGMENT2_DESC data loading is fast.
Kindly advice me regarding this.
Thanks in advance.Are the number of records in lookup very large ?
Why cant you use the same lookup once and have the join containing both the conditions.
YOu dont have to use lookup at all. YOu can also drag the "so called" lookup table in the source and build the join conditions yourself.
The join condition would be
CC.SEGMENT2=FF.FLEX_VALUE and CC.SEGMENT3=FF.FLEX_VALUE -
What is the use of lookup tranformation in odi
Hi Experts,
What is the use of lookup transformation in ODI.
In ODI we use different kinds of joins, so my doubt is what is the difference between lookup transformation joins and normal joins we use in ODI.
Please let me know with your valueable information.
Thx,
Sahadeva.Use the SIM card to connect to the cell carrier 3G network when there is no wifi available.
To set it up, see this -> http://support.apple.com/kb/HT4157 -
Accessing lookup table from XSL stylesheet
HI Gentlemen,
Given two XMLTYPE tables: a Master and a Lookup. The Lookup table consists merely of {key, value} pairs. I am about to display Master table contents--subtrees selected from one big XMLTYPE column. The display process is governed by an appropriate XSL stylesheet. Master table elements have data only in their attributes. For example: <time U="2"/> which means that the value of the Unit attribute is 2, meaning "Minute" according to the Lookup table.
My question is: Does anybody of you know a fast and safe method to SELECT from the Master AND Lookup (inner join, as in a pure relational environment), thereby REPLACING the key value with its MEANING (textual interpretation). This would be extremely important as numeric codes do not have meaning to the user. User-friendly behavior requires that all important information be displayed at once. (Note that I have nothing against modifying my stylesheet to query the Lookup table as well, if no straightforward master-detail querying technique exists.)
Please give me an idea if you have.
Thank you in advance, kind regards:
Miklos HERBOLYHI odie,
Here is the stuff you requested. I admit, it is fairly abundant, but you will see the structure and the main points. Some of the elements are multiple-occurrence, hence the XMLTABLE() solution was no good because of the large number of generated rows. The stylesheet would be ideal to display embedded "nested collections".
Please let me know if you have anything for me.
Thanks, regards
Miklos
HERE ARE THE XMLTYPE MASTER TABLE CONTENTS. TABLE IS NON-SCHEMA-BASED.
=====================================================================
SQL> select * from z;
XML_DOCUMENT
<?xml version="1.0" encoding="WINDOWS-1252"?>
<?xml-stylesheet type="text/xsl" href="file://c:/XSL/ziffer.xsl"?>
<ehd:ehd xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:ehd/go/001" xmlns:ehd="urn:ehd/001" ehd_versio
n="1.20">
<ehd:header>
<ehd:id EX="E7F454A3-0F6E-460e-A495-BBBBBBBBBBB3" RT="1.2.276.0.76.3.1.1"/>
<ehd:version_nbr V="1"/>
<ehd:document_type_cd V="851"/>
<ehd:service_tmr V="2006-07-01..2007-12-31"/>
<ehd:origination_dttm V="2006-05-03"/>
<ehd:provider>
<ehd:provider.type_cd V="KV" S="1.2.276.0.76.5.104" SV="1.0"/>
<ehd:person>
<ehd:id EX="3223" RT="2.3.5.3.T.e.s.t" RTV="1.10"/>
<ehd:person_name>
<ehd:nm>
<ehd:GIV V="Hans"/>
<ehd:PFX V="von"/>
<ehd:FAM V="Mustermann"/>
</ehd:nm>
</ehd:person_name>
<ehd:organization.nm V="KV Hessen"/>
<ehd:addr>
<ehd:STR V="Ottostr."/>
<ehd:HNR V="12"/>
<ehd:ZIP V="50859"/>
<ehd:CTY V="Köln"/>
</ehd:addr>
<ehd:telecom V="tel:030-4005-2121 begin_of_the_skype_highlighting 030-4005-2121 end_of_the_skype_highlighting begin_of_the_skype_highlighting 030-4005-2121 end_of_the_skype_highlighting"/>
</ehd:person>
<ehd:organization>
<ehd:id EX="46" RT="1.2.276.0.76.5.233"/>
</ehd:organization>
</ehd:provider>
<ehd:interface>
<ehd:id EX="SDEBM" RT="1.2.276.0.76.5.109" RTV="1.0"/>
<ehd:interface.nm V="Gebührenordnungsstammdatei / Satzart 851"/>
<ehd:version V="01.30"/>
</ehd:interface>
</ehd:header>
<ehd:body>
<gnr_liste>
<gnr V="01700V" USE="46" USE-DOMAIN="1.2.276.0.76.5.233" VT="2006-05-03">
<allgemein>
<gueltigkeit>
<service_tmr V="2006-07-01.."/>
<effective_tmr V="2006-07-01.."/>
</gueltigkeit>
<legende>
<kap_bez V="1.7" DN="Gesundheits- und Früherkennungsuntersuchungen, Mutterschaftsvorsorge, Empfängnisregelun
g und Schwangerschaftsabbruch (vormals Sonstige Hilfen)">
<bereich V="II" DN="Arztgruppenübergreifende allgemeine Leistungen"/>
<kapitel V="1" DN="Allgemeine Leistungen"/>
<abschnitt V="7" DN="Gesundheits- und Früherkennungsuntersuchungen, Mutterschaftsvorsorge, Empfängnisregel
ung und Schwangerschaftsabbruch (vormals Sonstige Hilfen)"/>
</kap_bez>
<kurztext V="Grundpauschale für Fachärzte für Laboratoriumsmedizin u.a."/>
<langtext V="Grundpauschale für Fachärzte für Laboratoriumsmedizin, Mikrobiologie und Infektionsepidemiologi
e, Transfusionsmedizin und ermächtigte Fachwissenschaftler der Medizin für die Erbringung von Laborleistungen gemäß den
Richtlinien des Gemeinsamen Bundesausschusses über die ärztliche Betreuung während der Schwangerschaft und nach der En
tb indung (Mutterschafts-Richtlinien) und/oder der Richtlinien des Gemeinsamen Bundesausschusses zur Empfängnisregelung
und zum Schwangerschaftsabbruch bei Probeneinsendung, "/>
<quittungstext V="Grundpauschale für Fachärzte für Laboratoriumsmedizin u.a."/>
</legende>
<anmerkungen_liste>
<anmerkung V="Die Leistung nach der Nr. 01100 ist nicht berechnungsfähig, wenn Sprechstunden vor 07:00 Uhr o
der nach 19:00 Uhr stattfinden oder Patienten zu diesen Zeiten bestellt werden."/>
<anmerkung V="Im Rahmen der unvorhergesehenen Inanspruchnahme des Vertragsarztes ist die Leistung nach der N
r. 01100 auch dann nur einmal berechnungsfähig, wenn es sich um eine Gruppenbehandlung handelt."/>
<anmerkung V="Die Leistung nach der Nr. 01100 ist ausschließlich bei kurativer Behandlung berechnungsfähig."
/>
</anmerkungen_liste>
<leistungsinhalt>
<komplex V="OBLIGAT">
<leistung V="Persönlicher Arzt-Patienten-Kontakt im organisierten Not(fall)dienst"/>
</komplex>
<komplex V="FAKULTATIV">
<leistung V="Beratung und Behandlung bis zu 10 Minuten Dauer,"/>
<leistung V="2...Beratung und Behandlung bis zu 10 Minuten Dauer,"/>
<leistung V="3...Beratung und Behandlung bis zu 10 Minuten Dauer,"/>
</komplex>
<komplex V="FAKULTATIV">
<leistung V="In Anhang 1 aufgeführte Leistungen,"/>
</komplex>
</leistungsinhalt>
<bewertung_liste>
<bewertung V="5595" U="1" U-DOMAIN="1.2.276.0.76.5.236">
<leistungserbringerart V="1" S="1.2.276.0.76.5.234" SV="1.02"/>
<leistung_typ V="GL"/>
</bewertung>
<bewertung V="2797.5" U="1" U-DOMAIN="1.2.276.0.76.5.236">
<leistungserbringerart V="2" S="1.2.276.0.76.5.234" SV="1.02"/>
<leistung_typ V="GL"/>
</bewertung>
</bewertung_liste>
<zeitbedarf_liste>
<zeit V="21" U="2" U-DOMAIN="1.2.276.0.76.5.238">
<leistung_typ V="AL"/>
</zeit>
</zeitbedarf_liste>
<pruefzeit V="1" U="2" U-DOMAIN="1.2.276.0.76.5.238">
<zeitprofilart V="3" S="1.2.276.0.76.5.228" SV="1.00"/>
</pruefzeit>
<rlv V="0" S="1.2.276.0.76.5.241" SV="1.00"/>
<leistungsgruppe V="10" S="1.2.276.0.76.5.227" SV="1.00"/>
</allgemein>
<bedingung>
<fachgruppe_liste V="true">
<versorgungsbereich V="2" S="1.2.276.0.76.5.237" SV="1.01">
<fachgruppe V="110" S="1.2.276.0.76.5.114" SV="1.00"/>
<fachgruppe V="111" S="1.2.276.0.76.5.114" SV="1.00"/>
<fachgruppe V="112" S="1.2.276.0.76.5.114" SV="1.00"/>
<fachgruppe V="303" S="1.2.276.0.76.5.114" SV="1.00"/>
<fachgruppe V="357" S="1.2.276.0.76.5.114" SV="1.00"/>
<fachgruppe V="501" S="1.2.276.0.76.5.114" SV="1.00"/>
<fachgruppe V="532" S="1.2.276.0.76.5.114" SV="1.00"/>
</versorgungsbereich>
</fachgruppe_liste>
<anzahlbedingung_liste>
<bezugsraum V="1" U="7" U-DOMAIN="1.2.276.0.76.5.226">
<anzahl V="1"/>
</bezugsraum>
</anzahlbedingung_liste>
<abr_best V="je Behandlungsfall mit Auftragsleistung(en) der Abschnitte 1.7.4 und/oder 1.7.5"/>
</bedingung>
<regel>
<ausschluss_liste>
<bezugsraum V="1" U="7" U-DOMAIN="1.2.276.0.76.5.226">
<gnr_liste V="false">
<gnr V="12220" DN="Grundpauschale für Fachärzte für Laboratoriumsmedizin u.a."/>
<gnr V="12225" DN="Grundpauschale für Vertragsärzte aus nicht in der Nr. 12220 aufgeführten Arztgruppen
bei Probeneinsendung"/>
</gnr_liste>
</bezugsraum>
</ausschluss_liste>
</regel>
<kv V="46" S="1.2.276.0.76.5.233" SV="1.01">
<kennzeichen>
<arztpraxis V="1"/>
</kennzeichen>
<kv_bewertung_liste>
<kv_bewertung V="100" U="1" U-DOMAIN="1.2.276.0.76.5.236">
<leistungserbringerart V="2" S="1.2.276.0.76.5.234" SV="1.02"/>
</kv_bewertung>
<kv_bewertung V="150" U="1" U-DOMAIN="1.2.276.0.76.5.236">
<leistungserbringerart V="1" S="1.2.276.0.76.5.234" SV="1.02"/>
</kv_bewertung>
</kv_bewertung_liste>
</kv>
<vdx>
<gkv_kontenart_liste>
<gkv_kontenart V="530" S="1.2.276.0.76.5.258"/>
<gkv_kontenart V="463" S="1.2.276.0.76.5.258"/>
</gkv_kontenart_liste>
</vdx>
</gnr>
</gnr_liste>
</ehd:body>
</ehd:ehd>
1 Zeile wurde ausgewählt.
SQL> spool off
==========================
HERE IS THE XQUERY COMMAND
==========================
<?xml version="1.0" encoding='windows-1252'?>
<!--
| Uncomment the following processing instruction and replace
| the stylesheet name to transform output of your XSQL Page using XSLT
<?xml-stylesheet type="text/xsl" href="YourStylesheet.xsl" ?>
-->
<page xmlns:xsql="urn:oracle-xsql" connection="gksconnection">
<xsql:query xmlns:xsql="urn:oracle-xsql">
SELECT XMLQuery('xquery version "1.0";
declare namespace n1="urn:ehd/001";
declare namespace n2="urn:ehd/go/001";
let $i := /n1:ehd/n1:body/n2:gnr_liste/n2:gnr
where $i[@n2:V = "01700V"]
return $i'
PASSING xml_document
RETURNING CONTENT)
FROM z
</xsql:query>
</page>
======================
HERE IS THE STYLESHEET - relevant part only
======================
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ehd="urn:ehd/001" xmlns:pe="urn:ehd/go/001">
<xsl:output method="html"/>
<xsl:template match="pe:gnr">
<html>
<head>
<title>EBM Ziffer</title>
<style type="text/css">
table
border-collapse:collapse;
table, td, th
border:1px solid black;
</style>
</head>
<body style="font-family:verdana;color:black">
<h2><xsl:text>Ziffer: </xsl:text>
<xsl:value-of select="@V"/>
</h2>
<table border="1">
<tr>
<td><xsl:text>KV</xsl:text></td>
<td><xsl:value-of select="@USE"/></td>
</tr>
<tr>
<td><xsl:text>Gültigkeit</xsl:text></td>
<td><xsl:value-of select="pe:allgemein/pe:gueltigkeit/pe:service_tmr/@V"/></td>
</tr>
<tr>
<td><xsl:text>Bezeichnung Kapitel</xsl:text></td>
<td><xsl:value-of select="pe:allgemein/pe:legende/pe:kap_bez/@V"/>
<xsl:text> </xsl:text>
<xsl:value-of select="pe:allgemein/pe:legende/pe:kap_bez/@DN"/></td>
</tr>
<tr>
<td><xsl:text>Bereich</xsl:text></td>
<td><xsl:value-of select="pe:allgemein/pe:legende/pe:kap_bez/pe:bereich/@V"/>
<xsl:text> </xsl:text>
<xsl:value-of select="pe:allgemein/pe:legende/pe:kap_bez/pe:bereich/@DN"/></td>
</tr>
<tr>
<td><xsl:text>Kapitel</xsl:text></td>
<td><xsl:value-of select="pe:allgemein/pe:legende/pe:kap_bez/pe:kapitel/@V"/>
<xsl:text> </xsl:text>
<xsl:value-of select="pe:allgemein/pe:legende/pe:kap_bez/pe:kapitel/@DN"/></td>
</tr>
<tr>
<td><xsl:text>Abschnitt</xsl:text></td>
<td><xsl:value-of select="pe:allgemein/pe:legende/pe:kap_bez/pe:abschnitt/@DN"/></td>
</tr>
<tr>
<td><xsl:text>Unterabschnitt</xsl:text></td>
<td><xsl:value-of select="pe:allgemein/pe:legende/pe:kap_bez/pe:uabschnitt/@DN"/></td>
</tr>
<tr>
<td><xsl:text>Block</xsl:text></td>
<td><xsl:value-of select="pe:allgemein/pe:legende/pe:kap_bez/pe:block/@DN"/></td>
</tr>
<tr>
<td><xsl:text>Kurztext</xsl:text></td>
<td><xsl:value-of select="pe:allgemein/pe:legende/pe:kurztext/@V"/></td>
</tr>
<tr>
<td><xsl:text>Langtext</xsl:text></td>
<td><xsl:value-of select="pe:allgemein/pe:legende/pe:langtext/@V"/></td>
</tr>
<tr>
<td><xsl:text>Langtext (Fortsetzung)</xsl:text></td>
<td><xsl:value-of select="pe:allgemein/pe:legende/pe:langtext_continued/@V"/></td>
</tr>
<tr>
<td><xsl:text>Quittungstext</xsl:text></td>
<td><xsl:value-of select="pe:allgemein/pe:legende/pe:quittungstext/@V"/></td>
</tr>
</table>
<!-- Anmerkungen-Liste -->
<h4><xsl:text>Anmerkungen</xsl:text></h4>
<table border="1">
<xsl:for-each select="pe:allgemein/pe:anmerkungen_liste/pe:anmerkung">
<tr>
<td><xsl:value-of select="@V"/></td>
</tr>
</xsl:for-each>
</table>
<!-- Leistungsinhalt-->
<h4><xsl:text>Leistungsinhalt</xsl:text></h4>
<table border="1" >
<tr>
<th><xsl:text>Komplex</xsl:text></th>
<th><xsl:text>Leistung</xsl:text></th>
</tr>
<xsl:for-each select="pe:allgemein/pe:leistungsinhalt/pe:komplex">
<tr>
<td><xsl:value-of select="@V"/></td>
<td>
<xsl:for-each select="pe:leistung">
<xsl:value-of select="@V"/>
</xsl:for-each>
</td>
</tr>
</xsl:for-each>
</table>
<!-- Bewertungsliste -->
<h4><xsl:text>Bewertungen</xsl:text></h4>
<table border="1">
<tr>
<th><xsl:text>Bewertung</xsl:text></th>
<th><xsl:text>Einheit</xsl:text></th>
<th><xsl:text>Gebührenordnung</xsl:text></th>
<th><xsl:text>Leistungserbringerart</xsl:text></th>
<th><xsl:text>Leistungstyp</xsl:text></th>
<th><xsl:text>Versorgungsgebiet</xsl:text></th>
</tr>
<xsl:for-each select="pe:allgemein/pe:bewertung_liste/pe:bewertung">
<tr>
<td><xsl:value-of select="@V"/></td>
<td><xsl:value-of select="@U"/></td>
<td><xsl:value-of select="pe:gebuehrenordnung/@V"/></td>
<td><xsl:value-of select="pe:leistungserbringerart/@V"/></td>
<td><xsl:value-of select="pe:leistung_typ/@V"/></td>
<td><xsl:value-of select="pe:versorgungsgebiet/@V"/></td>
</tr>
</xsl:for-each>
</table>
<!-- Zeitbedarfliste -->
<h4><xsl:text>Zeitbedarfliste</xsl:text></h4>
<table border="1">
<tr>
<th><xsl:text>Zeit</xsl:text></th>
<th><xsl:text>Einheit</xsl:text></th>
<th><xsl:text>Leistungstyp</xsl:text></th>
</tr>
<xsl:for-each select="pe:allgemein/pe:zeitbedarf_liste/pe:zeit">
<tr>
<td><xsl:value-of select="@V"/></td>
<td><xsl:value-of select="@U"/></td>
<td><xsl:value-of select="pe:leistung_typ/@V"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
=====================================
THE REQUESTED SAMPLE LOOKUP TABLE FOR TIME UNITS
=====================================
<keytabs>
−
<keytab S="1.2.276.0.76.5.238" SN="S_KBV_ZEITEINHEIT" SV="1.00">
<key V="1" DN="Sekunde" S="1.2.276.0.76.5.238" SV="1.00"/>
<key V="2" DN="Minute" S="1.2.276.0.76.5.238" SV="1.00"/>
<key V="3" DN="Stunde" S="1.2.276.0.76.5.238" SV="1.00"/>
<key V="4" DN="Tag" S="1.2.276.0.76.5.238" SV="1.00"/>
<key V="5" DN="Woche" S="1.2.276.0.76.5.238" SV="1.00"/>
<key V="6" DN="Monat" S="1.2.276.0.76.5.238" SV="1.00"/>
<key V="7" DN="Quartal" S="1.2.276.0.76.5.238" SV="1.00"/>
<key V="8" DN="Jahr" S="1.2.276.0.76.5.238" SV="1.00"/>
</keytab>
</keytabs>
==================================================================================================
And this is, from an earlier trial with XMLTABLE() what I become when stylesheet is commented out. Only for your information here!
Due to the three "Anmerkung" three rows were generated. What is this notation? I got it when
executing the XSQL sheet without stylesheet. Produced by the browser.
I can not find any info in the whole web.
==================================================================================================
<!--
<?xml-stylesheet type="text/xsl" href="untitled1.xsl" ?>
-->
<page>
<ROWSET>
<ROW num="1">
<ZIFFER>01700V</ZIFFER>
<GUELTIGKEIT>2006-07-01..</GUELTIGKEIT>
<KAP_NR>1.7</KAP_NR>
<KAP_BEZ>
Gesundheits- und Früherkennungsuntersuchungen, Mutterschaftsvorsorge, Empfängnisregelun g und Schwangerschaftsabbruch (vormals Sonstige Hilfen)
</KAP_BEZ>
<BEREICH_NR>II</BEREICH_NR>
<BEREICH>Arztgruppenübergreifende allgemeine Leistungen</BEREICH>
<KAPITEL_NR>1</KAPITEL_NR>
<KAPITEL>Allgemeine Leistungen</KAPITEL>
<ABSCHNITT>
Gesundheits- und Früherkennungsuntersuchungen, Mutterschaftsvorsorge, Empfängnisregel ung und Schwangerschaftsabbruch (vormals Sonstige Hilfen)
</ABSCHNITT>
<KURZTEXT>
Grundpauschale für Fachärzte für Laboratoriumsmedizin u.a.
</KURZTEXT>
<LANGTEXT>
Grundpauschale für Fachärzte für Laboratoriumsmedizin, Mikrobiologie und Infektionsepidemiologi e, Transfusionsmedizin und ermächtigte Fachwissenschaftler der Medizin für die Erbringung von Laborleistungen gemäß den Richtlinien des Gemeinsamen Bundesauss
</LANGTEXT>
<QUITTUNGSTEXT>
Grundpauschale für Fachärzte für Laboratoriumsmedizin u.a.
</QUITTUNGSTEXT>
<ANMERKUNG>
Die Leistung nach der Nr. 01100 ist nicht berechnungsfähig, wenn Sprechstunden vor 07:00 Uhr oder nach 19:00 Uhr stattfinden oder Patienten zu diesen Zeiten bestellt werden.
</ANMERKUNG>
</ROW>
<ROW num="2">
<ZIFFER>01700V</ZIFFER>
</ROW>
</ROWSET>
</page> -
Multiple Joins Between Folders
Hi Gurus,
I have a fact table which contains multiple candidate fields that can be joined to a lookup table
2 folders
fact_table
lookup_table1
2 Joins are possible between the two folders
fact_table.code_combination_id -> lookup_table1.code_combination_id
fact_table.accrual_code_combination_id -> lookup_table1.code_combination_id
When I try to create a workbook and include fields from the fact table, then include fields from the lookup table it asks me to choose the join.
If I then want to add fields based on the second join it won't ask me which join to use in future. It appears to assume the first join is still in affect between the two folders for the report. I know I can create another folder using the same lookup table and move one of the existing joins from the current folder to the new folder. Am I missing something or is this the only way to go?
Regards,
JohnHi John,
Interesting issue. This is how we resolved it in my last job.
Folders created:
Fact table: AR Fact
Lookup folder: Code Combination Lookup
Lookup folder: Accrual Code Combination Lookup
Then join AR Fact to each lookup folder. Generally, point the lookup folder to the AR Fact folder when creating the joins. Discoverer will like that direction best. As additional code combination types are referenced, add additional code combination folders. All of those folders come from the same lookup table. The only thing that is different is the column joined to in AR Fact.
So, in the end, your joins would be:
Code Combination Lookup.code_combination_id -> AR Fact.code_combination_id
Accrual Code Combination Lookup.code_combination_id -> AR Fact.accrual_code_combination_id
Hope this helps.
Regards,
Nancy -
Joining two datasets in Crosstabs
Hi....I have a requirement in crosstabs...
I have 3 data sets…. Ds1, ds2, ds3
Month column comes from all the 3 data sets.
I have a Category Column which comes from all three datasets…. (category = Mother board,mouse,key board )
Max sales, Avg sales, Total sales are the columns which comes from ds1, ds2, ds3 respectively..
Is it possible to achieve this following out put by cross tabs?
How to join two/three data sets in crosstabs??
Image below:
http://i51.tinypic.com/2u9k421.jpgThe Lookup expressions are used for this. They all use a similar syntax:
=command(LocalKey, ForeignKey, ForeignValue, "OtherDatasetName")
This is similar to JOINing tables ON LocalKey=ForiegnKey in Transact-SQL. The expression builder tool will give you some limited help with the 3 Lookup expressions . Visakh's link has more extensive help.
The Join expression mentioned by Brad is often used in conjunction with the LookupSet and MultiLookup expressions, which return an array of values (ForeignValue) rather than a single value like Lookup. Join will concatenate the elements of an array into
a string.
"You will find a fortune, though it will not be the one you seek." -
Blind Seer, O Brother Where Art Thou
Please Mark posts as answers or helpful so that others may find the fortune they seek. -
Physical versus Logical Lookups
Which type of lookup table is better to use - physical or logical ? does logical lookup table joins are done in memory or pushed to database.
Thanksuser457687 wrote:
logical lookup table joins are done in memory or pushed to database.Lookup's done in the physical layer are pushed to the database where as in the BMM layer, the BI Server does the in-memory joins and aggregations as needed. I believe physical lookup's are better compared to the logical lookup's as the joins are pushed to the database and they should perform faster than the in-memory joins. -
Any ideas on how to swap a to&from date table to monthly using DI?
New to DI, so after a bit of product usage advice!
I've got a table that looks like this...
ID,NAME,SDATE,EDATE,TOTALDAYS,WEEKDAYS
1,James,01/01/2010,10/01/2010,10,6
2,John,03/02/2010,19/02/2010,16,13
1,James,15/04/2010,23/07/2010,100,72
3,Chris,05/08/2010,05/08/2010,1,1
2,John,30/08/2010,03/09/2010,5,5
3,Chris,28/09/2010,06/10/2010,9,7
I want it in a format thats a bit more like this...
YEAR,MONTH,ID,NAME,TOTALDAYS,WEEKDAYS
2010,JAN,1,James,10,6
2010,FEB,2,John,16,13
2010,APR,1,James,16,12
2010,MAY,1,James,31,21
2010,JUN,1,James,30,22
2010,JUL,1,James,23,17
2010,AUG,3,Chris,1,1
2010,AUG,2,John,2,2
2010,SEP,2,John,3,3
2010,SEP,3,Chris,3,3
2010,OCT,3,Chris,6,4
Anyway to do this type of operation in DI?
It's not a huge data set (k's of rows) - but I need it in this sort of format do do some monthly reporting. So far in DI I've only really used simple lookups and joins - more a load tool - so hope this type of thing is relativley standard stuff?
Thanks for any advice!
j.You can use below functions in query transform:
to_char(<input_date type value>, <'YYYY | MON>') to get the year / Month. -
Many to many relationships (Again)
Hello,
There was a posting on above subject.
Re: Many to many relationships between Fact and Dimension
They asked to look chapter 3 in the user's guide... <http://download.oracle.com/docs/pdf/B10996_01.pdf>. chapter 3 talks about defining Oracle Data Objects. I could find above subject in chapter 3 .
Here is our situation We are using OWB 9.2.0.2.8. We are in a situation to build ETL from denormalized (relational tables) source to normalized target (relational tables). It is not a data warehouse situation. It could be a reverse of data warehouse. As given below
Supplier >--------------------<Item
becomes Supplier ------<supp_item.>--------------Item after many to many resolution, Where supp_item is interface table.
We were able build Supplier and Item through seprate mapping. I could build supp_item through post mapping process. I look for alternate thought as well.
We are using separate sequence number for Supplier , Item and supp_item. The sequences will be surrogate keys such as Supplier ( Suppseq(PK)), Item (Itemseq (PK)) and supp_item(suppitemseq (PK)) Here is the sample
Supplier
001|S001
002|S002
003|S003
004|S004
Item
001|I001
002|I002
003|I003
Supp_item (Suppseq|ItemSeq)
001|002 --- S001 I002
001003 -----S001 I003
001|004 ----- S001 I 004
002|002 ---- S 002 I002
002|003 ---- S 002 I003
003|001 --- S 003 I 003
003|003 --- S 003 I 003
Did any body face such situation? What is the best way to create a mapping (single map or multiple map with processflow sequence) for this situation?
Let me know the steps exercised in OWB for this situation.
I appreciate your help.
Regards
RamHi Ram,
The easiest way to do this, would be to:
- Load supplier in one mapping and generate the surrogate key.
- Load item another (or the same) mapping and generate the surrogate key.
- Load supplier_item in its own separate mapping, using a key lookup (or join) to (with) the supplier and item tables.
Needless to say, you should create unique keys on the natural key of the supplier and item tables, to enable quick index-based lookups and make sure you get one unique value for every value of the natural key.
Hope this helps,
Mark. -
Hi,
I have a basic doubt in Import manager.
While mapping source to destination. We select main table in the destination and mapp with the file import as source.
Suppose my main table is vendor and source table is vendor i ahve mapped all the fields and values from source to destination .Then i have bank detail as flat table which also have 4-5 fields shall i ahve to map this also to the source system By selecting the bank detail flat table as the destination and .
Or i have to mapp only the main table of the destination system to the source system.
Thanks,
RohitHi Rohit,
As you said that all the fields in the source and the destination are mapped, so i dont think so you require to map the bank details from other source table; in case you want to add alos you can, as you can map only one table with one; it maintain only one to one relationship. In case you have some fileds left out in your destination table to be mapped with fields in other table than just use lookup and join to get the data of bank source table into vendor source table, by this you will have all the bank fields and vendor fields in one table as vendor and you can easily map all the fields from one source table to one destionation.
In case you want to know something else please let me know.
Regards,
CHARAN -
Invalid record not going into E$ table
Hi,
I am using Oracle as source and target but source and target table is on different database.lets say
base table EMP_SRC table --> ABC database
fact table EMP_TRG table --> XYZ database
and some dimension table are also in XYZ Database. and all FK constraint are there in fact table.
I created one interface in which on source dataset i drag base table and dimension table for lookup and join the code columns with base table code and on target side i am populating keys and measures value correspondence the base table data which matched with dim table.
I am using KM
LKM SQL to SQL
IKM SQL incremental update
Option:
Flow control : true
CKM SQL
when i run the Interface it is getting successful with valid records but in base table there is some invalid record also which is not going into E$ table
why it is happening ? did I miss something ? Please help me
Thanks.I am doing little modification here
BASE_DATA:
RSN_CODE
QUANTITY
DATA_DIM:
ID_RSN (PK)
RSN_CODE
your join need to be BASE_DATA.RSN_CODE = DATA_DIM.RSN_CODE(+)
your target table will have as mapping
TGT_DIM:
ID_RSN (PK): DATA_DIM.ID_RSN
QUANTITY: BASE_DATA.QUANTITY
Now
Base_Data
RSN_CODE Quantity
1A 120
1B 260
1C 130
1E 300
DATA_DIM
ID_RSN RSN_CODE
1 1A
2 1B
3 1C
4 1D
------------------------------OK--------------------------
After execution
TGT_DIM
ID_RSN QUANTITY
1 120
2 260
3 130
and in E$ table
ODI_ROW_ID : F
ODI_ERR_MESS : ODI-15066: The column ID_RSN cannot be null.
ODI_CHECK_DATE : 24-JUL-13
RSN_CODE : (null)
Quantity : 300
---------------------OK----------------------------------
but I want in E$ table consist following result
ODI_ROW_ID : F
ODI_ERR_MESS : ODI-15066: The column ID_RSN cannot be null.
ODI_CHECK_DATE : 24-JUL-13
RSN_CODE : 1E
Quantity : 300
Thanks
Maybe you are looking for
-
How to remove fields from view V_QCMBSEG for table BSEG
Hi By mistake have appended 5 fields in standard table BSEG, after that i have deleted that appended structure from table, while deleting from different views network got disconnected i lost connection from server. So process get terminated and thos
-
I let firefox to remember my login password for facebook,how can i reverse it
i dont want firefox to automatically signin to my account on facebook,how can i do it
-
Mac Mini won't boot after failed XP installation
Recently upgrade HD to 320GB 7200 rpm and 3GB ram. Running 10.5.8 fine. I tried to install Windows XP through Boot Camp, but wasn't successful, I terminated the installation. Then Mac Mini won't boot up. When powered on, you heard the chime, then gre
-
Transact. RFC, automatically red request turns to green
Hi, there is a failed info package which was stuck for the past 5 hours after just clicking on the Transact.RFC push button that appears under the status tab in the monitor, it takes me to R/3 side, i will enter username and password, it then enters
-
Xcode 4.1 won't refactor C++
Hi, I'm using the latest version of XCode in Lion. I have some C++ code and want to rename a function. Right clicking on the name brings up a menu with the "refactor" option. Howver, when I select "refactor", I get a dialog box telling me that XCo