Joining two datasources using an InfoSource
Hello Experts,
is it possoble to join two datasources (two database tables sharing an attribute) using an InfoSource as it works with two InfoSources and one ODS?
Axel
In your source system, create a view in se38 with your tables. Then, still in your source system, go to t.c. SBIW and create a new DataSource with this view. Then go to your BW, replicate DataSources of your source system and activate.
I have not explained all the steps but is not a very dificult process, so i think you will not have problems.
Regards
Similar Messages
-
I am trying to develop a query in MS Access 2010 to join two tables using three joins, one of which is a (between) date range. The tables are contained in Access. The reason
the tables are contained in access because they are imported from different ODBC warehouses and the data is formatted for uniformity. I believe this cannot be developed using MS Visual Query Designer. I think writing a query in SQL would be suiting this project.
ABCPART links to XYZPART. ABCSERIAL links to XYZSERIAL. ABCDATE links to (between) XYZDATE1 and ZYZDATE2.
[ABCTABLE]
ABCORDER
ABCPART
ABCSERIAL
ABCDATE
[ZYXTABLE]
XYZORDER
XYZPART
XYZSERIAL
XYZDATE1
XYZDATE2Thank you for the looking at the post. The actual table names are rather ambiguous. I renamed them so it would make more sense. I will explain more and give the actual names. What I do not have is the actual data in the table. That is something I don't have
on this computer. There are no "Null" fields in either of the tables.
This table has many orders (MSORDER) that need to match one order (GLORDER) in GLORDR. This is based on MSPART joined to GLPART, MSSERIAL joined to GLSERIAL, and MSOPNDATE joined if it falls between GLSTARTDATE and GLENDDATE.
[MSORDR]
MSORDER
MSPART
MSSERIAL
MSOPNDATE
11111111
4444444
55555
2/4/2015
22222222
6666666
11111
1/6/2015
33333333
6666666
11111
3/5/2015
This table has one order for every part number and every serial number.
[GLORDR]
GLORDER
GLPART
GLSERIAL
GLSTARTDATE
GLENDDATE
ABC11111
444444
55555
1/2/2015
4/4/2015
ABC22222
666666
11111
1/5/2015
4/10/2015
AAA11111
555555
22222
3/2/2015
4/10/2015
Post Query table
GLORDER
MSORDER
GLSTARTDATE
GLENDDATE
MSOPNDATE
ABC11111
11111111
1/2/2015
4/4/2015
2/4/2015
ABC22222
22222222
1/5/2015
4/10/2015
1/6/2015
ABC22222
33333333
1/5/2015
4/10/2015
3/5/2015
This is the SQL minus the between date join.
SELECT GLORDR.GLORDER, MSORDR.MSORDER, GLORDR.GLSTARTDATE, GLORDR.GLENDDATE, MSORDR.MSOPNDATE
FROM GLORDR INNER JOIN MSORDR ON (GLORDR.GLSERIAL = MSORDR.MSSERIAL) AND (GLORDR.GLPART = MSORDR.MSPART); -
How to join two DataSource in a single InfoSource
Hello,
I have got two datasources which both share the same primary key (Field IDCO) and also have several individual fields. For example:
Datasource 1:
| IDCO | price |
Datasource 2:
| IDCO | amount |
Now I would like to join both datasources into a single InfoSource that should look like:
| IDCO | amount | price |
In plain SQL I would do something like
Select ... from datasource1 inner join datasource2 on datasource1.IDCO = datasource2.IDCO
Any ideas how this can be achieved be achieved in the Data Warehousing Workbench?
Best Regards
ChristophHi Christoph Außem, welcome to SDN world....
Steps:
1. Create a InfoSource with |IDCO | price | amount - InfoObjects. then map Datasource 1 with InfoSource here Mapping is like below..
DataSource1-IDCO = InfoSource-IDCO
DataSource1-Price = InfoSource- price
EMPTY (NULL ) = InfoSource- Amount
DataSource2-IDCO = InfoSource-IDCO
DataSource2-Amount = InfoSource-Amount
EMPTY (NULL ) = InfoSource- Price.
In this wasy you can map the fields and InfoObjects.
Thanks
Reddy -
Join two table using two link field
hi all
i need to left join two table, and to link two table need to match two field
ex: the link field is store_name and id
i use below sql statement
SELECT A1.store_name, A1.id, A1.card, A2.sale, A2.history
FROM Georgraphy A1, Store_Information A2
WHERE A1.store_name = A2.store_name(+)
AND A1.id = A2.id(+)
but it's wrong
please tell me how to left join A1 and A2, thx!Whats your aim?
Any error message?
SQL> select * from geography;
ID STORE_NAME
1 a
1 b
2 a
2 b
SQL> select * from store_information;
ID STORE_NAME
1 a
3 d
SQL> SELECT *
2 FROM Geography A1, Store_Information A2
3 WHERE A1.store_name = A2.store_name(+)
4 AND A1.id = A2.id(+);
ID STORE_NAME ID STORE_NAME
1 a 1 a
2 a
2 b
1 b -
Joining two tables using PL/SQL
here i am trying to join two tables can any one tell me what is wrong with this syntex
CREATE OR REPLACE PROCEDURE test IS
CURSOR c1 IS SELECT seq,fname,lname from t1;
CURSOR c2 IS SELECT seq1,q,a from t2;
userjob number;
BEGIN
OPEN c1;
insert into t3 values(c1.seq,c1.fname,c1.lname);
FETCH c1.seq INTO userjob;
FOR c1rec IN c2 LOOP
IF (c1rec.seq=c1.seq and c1rec.q1='why') THEN
insert into t3 values(c1rec.q1,c1rec.a1);
elsif (c1rec.seq=c1.seq and c1rec.q1='what') then
insert into t3 values(c1rec.q2,c1rec.a2);
elsif (c1rec.seq=c1.seq and c1rec.q1='when') then
insert into t3 values(c1rec.q3,c1rec.a3);
elsif (c1rec.seq=c1.seq and c1rec.q1='where') then
insert into t3 values(c1rec.q4,c1rec.a4);
END IF;
END LOOP;
END;
/You should always fetch a cursor before using it's values. All columns in the select should be fetched into variables or a record-variable. You can't refer to the cursor-columns values with c1.seq etc.
r1 c1%rowtype;
l_found boolean;
BEGIN
OPEN c1;
FETCH c1 INTO r1;
insert into t3 values(r1.seq,r1.fname,r1.lname);
l_found := c1%found;
close c1;
if l_found
then
It is also better to close the cursor and check if the select resulted in a row. With this code you will only retrieve one row even if the select will result in multiple rows.
But I agree with all the others that this can probably be done more efficiently with one SQL statement. -
Can't join two images using imagetoimage
Hello forum users!
Well I have spent a good portion of my weekend trying to get this VI to work and I am oficially out of ideas...
I'm using DataSockets to extract images from the web and I'm trying to join these two images using the ImageToImage function of IMAQ.
The images are extracted just fine but when I try to join them all I get is the first image!!!
What am I doing wrong????
My VI is attached.
Some test considerations:
To extract the images be sure to add [text] to the end of the html line
This VI only works with http and not https (DATASOCKET limitations)
Bruno Noronha
Certified LabVIEW Associate Developer
Using LabVIEW 8.6
Attachments:
Untitled 1.vi 42 KBSorry posted in the wrong area of the forum... I already reposted it in Machine Vision
Bruno Noronha
Certified LabVIEW Associate Developer
Using LabVIEW 8.6 -
Hi Gurus,
I have three tables. I want to join all tables using union in SQL statement. The query is returning all the records from both tables but i only require unique rows based on a specific column value. Here is my table structure -
TableA -
LIC_ID NUMBER(10) NOT NULL
LIC_NUMBER VARCHAR2(20)
COMMENCE_DATE DATE
EXPIRY_DATE DATE
TERM VARCHAR2(20)LIC_ID is the primary key in this table -
Sample data from TableA
LIC_ID LIC_NUMBER COMMENCE_DATE EXPIRY_DATE TERM
2 TR4323 12/04/2008 11/03/2010 2 Years
34 TR5432 23/07/2009 22/07/2010 1 Year
45 TR5321 24/06/2009 23/06/2010 1 Year
65 TR6666 23/07/2010 22/07/2011 1 Year
32 TR2423 30/05/2010 29/05/2011 1 YearTableB -
MAR_ID NUMBER(10) NOT NULL
LIC_ID NUMBER(10) NOT NULL
ZONE_NAME VARCHAR2(20)
DEPARTMENT VARCHAR2(20)
ACTIVITIES VARCHAR2(200)
COMMENTS VARCHAR2(200)MAR_ID is the primary key in this table and LIC_ID is the foreign key on TableA
Sample data from TableB -
MAR_ID LIC_ID ZONE_NAME DEPARTMENT ACTIVITIES COMMENTS
23 2 ZONE A IT NONE
43 34 ZONE B IT NONE
33 65 ZONE C ACCOUNT NONE
TableC
REC_ID NUMBER(10) NOT NULL
LIC_ID NUMBER(10) NOT NULL
DIST_NAME VARCHAR2(20)
REGION VARCHAR2(20)
ACTIVITIES VARCHAR2(200)
COMMENTS VARCHAR2(200)REC_ID is the primary key in this table and LIC_ID is the foreign key.
Sample data -
REC_ID LIC_ID DIST_NAME REGION ACTIVITIES COMMENTS
2 45 SA NORTH NONE
3 65 TA NORTH NONE
5 32 NT SOUTH NONEHere is my sql query -
select a.lic_id, a.lic_number, a.commence_date, a.expiry_date from
TableA a, TableB b
where a.lic_id=b.lic_id
union
select a.lic_id, a.lic_number, a.commence_date, a.expiry_date from
TableA a, TableC c
where a.lic_id=c.lic_idThe above query returns -
lic_id lic_number commence_date expiry_date
2 TR4323 12/04/2008 11/03/2010
34 TR5432 23/07/2009 22/07/2010
45 TR5321 24/06/2009 23/06/2010
65 TR6666 23/07/2010 22/07/2011
32 TR2423 30/05/2010 29/05/2011
65 TR6666 23/07/2010 22/07/2011 LIC_ID 65 exists in both table TableB and TableC hence it repeats in query but I want to display that only once. How can I do that? I want to return unique record on LIC_NUMBER.
Hope this make sence.
Many thanks,
TajuddinThanks for all your reply and suggestions. David altering session did not work.
Sven your idea helped me to figure it out what to do. I found a way around to fix it. Here is my current code -
select a.lic_id, a.lic_number, a.commence_date, a.expiry_date from
TableA a, TableB b
where a.lic_id=b.lic_id
union
select a.lic_id, a.lic_number, a.commence_date, a.expiry_date from
TableA a, TableC c
where a.lic_id=c.lic_id and c.lic_id not in ( select lic_id from TableB)This will exclude any LIC_ID exists in TableB.
Thanks again for your help guys.
Regards,
M Tajuddin
Web: http://tajuddin.whitepagesbd.com
Blog: http://aspblog.whitepagesbd.com -
How to Join two tables using the Inner Join
Hi All,
I have two tables i.e table1 and table2 as i have created two otds and my present requirement is to join this two tables and get the results and using this i need to do some logic and update another table3.
can some one help me out how to go for the above req.
Thanks in Advance
SrikanthThe best efficient way to use inner join is create two input otds,use there otd's in create a collaboration usinf etl.
after selecting two input otd's create a inner join statement and map it to out put otd.
while using the etl the performance of the over all integration is increased 20 time of the normal integration.
Hopes this will helps,,
Thanks,
Papa Rao. -
How do I join two letters using the shape builder tool?
I am making a sign for my logo. The 'i' in my script face is long and overlaps the following letter which the sign maker's router will not read. So I would like to be able to use the shape builder tool to join the 3 instances where the letter 'i' appears each to the following letter. No luck so far. I have turned the type into points. I have highlighted the first instance, 'i' and 'c'. but the shape builder tool shows a circle with a line through it... not working.
Anyone have an idea?It may take a combination of some of the Pathfinder tools, such as: Intersect, Merge, and Unite. And, it may be a matter of manually going in and deleting some anchor points in the outlines. Do some experimenting on copies of the instances. Might be a process of elimination.
-
How to join two tables using UD Connect ?
Hi,
I have 2 tables on which I need to create join & extract the data from Oracle database using UD connect. Is this possible? If yes, please let me know how or suggest an alternative approach.
Thanks,
SunilThanks Tony for the reply.. Actually, the issue is Netweaver Java dictionary doesn't allow you to create a view, right? Also, I dont want to create a view directly on the database.
I want to handle this on BI side somehow. -
How to join two tables using EJB-QL
Hi There,
How to join tables using EJB-QL ?
Thanks.
Edited by: vamseebobby on Nov 6, 2007 8:12 AMYou might try
SELECT b.entity2property FROM Entity1 a JOIN a.entity2 b
for example, to retrieve players names, from a Players table, that belong to the team 'My Team' in the Teams table
SELECT b.playerName FROM Teams a JOIN a.players b WHERE a.teamName = 'My Team' -
Join two table (Inner Join)
how to join two tables using inner join.
Tariq,
Pretty vague question. You can create joins in an ABAP program, or while creating a view, or when creating a SAP query of one type or another. Some people download tables and then join them using desktop software. If you can elaborate your question I may be able to give you a better answer.
I recently joined two wooden tables at a picnic. I used 24 gauge galvanized wire combined with duct tape, so I guess you couldn't really call that an 'inner join'.
Best Regards,
DB49 -
hi
how to join two tables using inner join if the first table has two primary keys and second table has 3 primary keysWould describe type of joins in ABAP, which might differ with other joins.
The join syntax represents a recursively nestable join expression. A join expression consists of a left-hand and a right- hand side, which are joined either by means of INNER JOIN or LEFT OUTER JOIN. Depending on the type of join, a join expression can be either an inner (INNER) or an outer (LEFT OUTER) join. Every join expression can be enclosed in round brackets. If a join expression is used, the SELECT command circumvents SAP buffering.
On the left-hand side, either a single database table, a view dbtab_left, or a join expression join can be specified. On the right-hand side, a single database table or a view dbtab_right as well as join conditions join_cond can be specified after ON. In this way, a maximum of 24 join expressions that join 25 database tables or views with each other can be specified after FROM.
AS can be used to specify an alternative table name tabalias for each of the specified database table names or for every view. A database table or a view can occur multiple times within a join expression and, in this case, have various alternative names.
The syntax of the join conditions join_cond is the same as that of the sql_cond conditions after the addition WHERE, with the following differences:
At least one comparison must be specified after ON.
Individual comparisons may be joined using AND only.
All comparisons must contain a column in the database table or the view dbtab_right on the right-hand side as an operand.
The following additions not be used: NOT, LIKE, IN.
No sub-queries may be used.
For outer joins, only equality comparisons (=, EQ) are possible.
If an outer join occurs after FROM, the join condition of every join expression must contain at least one comparison between columns on the left-hand and the right-hand side.
In outer joins, all comparisons that contain columns as operands in the database table or the view dbtab_right on the right-hand side must be specified in the corresponding join condition. In the WHERE condition of the same SELECT command, these columns are not allowed as operands.
Resulting set for inner join
The inner join joins the columns of every selected line on the left- hand side with the columns of all lines on the right-hand side that jointly fulfil the join_cond condition. A line in the resulting set is created for every such line on the right-hand side. The content of the column on the left-hand side may be duplicated in this case. If none of the lines on the right-hand side fulfils the join_cond condition, no line is created in the resulting set.
Resulting set for outer join
The outer join basically creates the same resulting set as the inner join, with the difference that at least one line is created in the resulting set for every selected line on the left-hand side, even if no line on the right-hand side fulfils the join_cond condition. The columns on the right-hand side that do not fulfil the join_cond condition are filled with null values.
Note
If the same column name occurs in several database tables in a join expression, they have to be identified in all remaining additions of the SELECT statement by using the column selector ~.
Example
Join the columns carrname, connid, fldate of the database tables scarr, spfli and sflight by means of two inner joins. A list is created of the flights from p_cityfr to p_cityto. Alternative names are used for every table.
PARAMETERS: p_cityfr TYPE spfli-cityfrom,
p_cityto TYPE spfli-cityto.
DATA: BEGIN OF wa,
fldate TYPE sflight-fldate,
carrname TYPE scarr-carrname,
connid TYPE spfli-connid,
END OF wa.
DATA itab LIKE SORTED TABLE OF wa
WITH UNIQUE KEY fldate carrname connid.
SELECT ccarrname pconnid f~fldate
INTO CORRESPONDING FIELDS OF TABLE itab
FROM ( ( scarr AS c
INNER JOIN spfli AS p ON pcarrid = ccarrid
AND p~cityfrom = p_cityfr
AND p~cityto = p_cityto )
INNER JOIN sflight AS f ON fcarrid = pcarrid
AND fconnid = pconnid ).
LOOP AT itab INTO wa.
WRITE: / wa-fldate, wa-carrname, wa-connid.
ENDLOOP.
Example
Join the columns carrid, carrname and connid of the database tables scarr and spfli using an outer join. The column connid is set to the null value for all flights that do not fly from p_cityfr. This null value is then converted to the appropriate initial value when it is transferred to the assigned data object. The LOOP returns all airlines that do not fly from p_cityfr.
PARAMETERS p_cityfr TYPE spfli-cityfrom.
DATA: BEGIN OF wa,
carrid TYPE scarr-carrid,
carrname TYPE scarr-carrname,
connid TYPE spfli-connid,
END OF wa,
itab LIKE SORTED TABLE OF wa
WITH NON-UNIQUE KEY carrid.
SELECT scarrid scarrname p~connid
INTO CORRESPONDING FIELDS OF TABLE itab
FROM scarr AS s
LEFT OUTER JOIN spfli AS p ON scarrid = pcarrid
AND p~cityfrom = p_cityfr.
LOOP AT itab INTO wa.
IF wa-connid = '0000'.
WRITE: / wa-carrid, wa-carrname.
ENDIF.
ENDLOOP. -
Best way to join information from two datasources??? pls help
Guys Please help in understanding the basics of modelling in terms of best practises in SAP-BI
I have two datasources. One is standard Bussiness content datasources 2LIS_02_ITM ( having PO item level data) and the other is a generic datasource on table EBAN (having PR details). Now all my report requirements are on both PO and PR information.So i need to club these datasources or its corresponding DSO's or its corresponding cubes.
Please suggest the best of the following solutions:
solution 1 and 2
2LIS_02_ITM -
> DSO1 -
> PO cube
Gener Datasourceon EBAN -
> DSO2----
> PR Cube
solution one is to go and build multiprovider joining with PR no in either cubes
solution two is to go and build infoset joining with PR no in either cubes
solution 3
2LIS_02_ITM -
> DSO1 -
> cube
Gener Datasourceon EBAN -
> DSO2
while populating data from DSO1 to cube we lookup on to DSO2 and read the PR data , thus consolidating both PR and PO data in the cube
solution 4
Here i can plan to combine two datasources 2LIS_02_ITM ,Gener Datasourceon EBAN into one infosource.
(2LIS_02_ITM ,Gener Datasource on EBAN)---->infosource->DSO-->cube
solution 5
i can club both PO and PR information at the r/3 side only into a view and build a generic datasource on that... then bring the whole data into one DSO and cube and report on that....
Please do help me guys.... i will award points to all who adds some imp information.Hello Venkata
We use approach
1/2 when we have different data comming fromsource and data amount is huge and lot of transformation is there
3 You can use this approach here but lookup in other ODS is also time consuming also any changes which may be done in future wouldd need corresponding changes in the ODS
4. We should always use infosource even if BI/7 as it provides very much flexibility and scalability...but when u r combining these two DS you need to make sure u r extracting proper record
I dont know if you are talking abt extractor enhancement in this point...i would suggest if no. of field to be enhanced is less than u can go for it...
5. IOfcourse u can create a view but its better to enhance extractor becuae SAP has already provided DS for 2LIS_02_ITM...
We have done the same thing but we were having only 7-8 PR fields ...so we just enhanced the structure.......
Thanks
Tripple k -
Using a view to join two tables
Thank you in advance for any advice you can lend.
I am using this code in my MySQL db to create a view.
select
job.id as job_id,
umr_cost_calculation.plant_name,
max(umr_cost_calculation.id) as max_id
from
job,
umr_cost_calculation
where
job.id = umr_cost_calculation.job_id
group by job.id , umr_cost_calculation.plant_name
I did this so I can join two tables and pull in the most current cost data for a specific plant. The report will, at times, show the wrong (older) data. I can re-run the report, filter to just the one job and see again the wrong data. When I add the max_id to the report, it display the id and updates the report with the correct data. It appears that the view was stale and by adding the ID to the report this fixed the issue.
1) Is this the best way to make this join? I don't see how Crystal supports a subquery to make a join (this is why I used the view).
2) If I leave the max_id on the report, will this force the view to always update?Try:
Select
D1.EmpLoginID,
Count(D1.ID),
Count(D1.AlarmCode),
D1.EmpName,
D1.EmpAddress,
D2.Db2Count
FROM DB1.Data D1
LEFT JOIN (SELECT
empLoginID, Count(*) as Db2Count
FROM DB2.ALL_Database
WHERE site = 'Atlanta'
GROUP BY empLoginID
) D2
ON D1.EmpLoginID = D2.EmpLoginID
GROUP BY D1.empLoginID, D1.EmpName, D2.EmpAddress, D2.Db2Count
Order BY D1.empLoginID ASC
For every expert, there is an equal and opposite expert. - Becker's Law
My blog
My TechNet articles
Maybe you are looking for
-
Hi friends, Can i add two keyfigures additonally to an infocube which already has a delta scheduled?please help me with the process also. Thanks in advance. venkat
-
Problem with SDO_RDF_MATCH query
hi guys I was trying to use test the "FAMILY INFORMATION" example that came with Oracle Spatial (RDF Descripton Framework). I was able to load all the statements present in the manual. But the I got the below error while executing the a query.Below a
-
It most often crashes when I am accessing a wmv file, but it has happened numerous times when I am asking nothing of it, just sitting there . I always check the boxes that send the report to headquarters and report the page I was on and all that, but
-
Servicebus: error: sch-props-correct.2: Duplicate global type
I have a problem creating Split Join on ALSB 3.0. The problem is that the the request message schema of Split join service contains the same type(element) that is defined in request message schema of service that I want to invoke in split join flow.
-
Report not displyed in web page
Hi All, I am trying to execute the report in Query designer and when i click on execute button the internet explorer pops up with about blank page.Is thery any specific settings i need to make in order to display the report in web page.Please provid