inner join is not eliminating duplicates!
Name of the table is customersVALUE CITY SIDE NUMS CNAME
1 2001 Hoffman 100 1001 London
2 Rome 2002 200 1003 Giovanni
3 2003 Liu San Jose 200 1002
4 2004 grass Berlin 300 1002
5 2006 Clemens 100 1001 London
6 2008 Cisneros San Jose 300 1007
7 2007 perish Rome 100 1004
Query is
To find all pairs of customers having the same side
I tried:
SELECT c.cname, cb.cname FROM customers c INNER JOIN customers cb WE cb.rating AND c.cname = c.rating! = cb.cname
CNAME CNAME
1 perish Hoffman
2 Clemens Hoffman
3 Liu Giovanni
4 Giovanni Liu
5 Cisneros grass
6 perira Clemens
7 Hoffman Clemens
8 grass Cisneros
Clemens 9 perish
10 Hoffman perish
Ideally, it should up to 5 rows, but it does not return these lines for an e.g. Hoffman perish since I'm Perira Hoffman already. Your answers will be appreciated.
Thank you
Vaibhav
Hi, Vaibhav,
914683 wrote:
Name of the table is customersVALUE CITY SIDE NUMS CNAME
1 2001 Hoffman 100 1001 London
2 Rome 2002 200 1003 Giovanni
3 2003 Liu San Jose 200 1002
4 2004 grass Berlin 300 1002
5 2006 Clemens 100 1001 London
6 2008 Cisneros San Jose 300 1007
7 2007 perish Rome 100 1004Query is
To find all pairs of customers having the same sideI tried:
SELECT c.cname, cb.cname FROM customers c INNER JOIN customers cb WE cb.rating AND c.cname = c.rating! = cb.cname
Perhaps what you want is
SELECT c.cname
, cb.cname
FROM customers c
INNER JOIN customers cb ON c.rating = cb.rating
AND c.cname < cb.cname -- not !=
;
CNAME CNAME
1 perish Hoffman
2 Clemens Hoffman
3 Liu Giovanni
4 Giovanni Liu
5 Cisneros grass
6 perira Clemens
7 Hoffman Clemens
8 grass Cisneros
Clemens 9 perish
10 Hoffman perish
The title you chose for this thread is "inner join is not eliminating duplicates!
Inner joins (or other types of joints) are not supposed to remove duplicates. Use SELECT DISTINCT to remove duplicates, which is exactly the same lines.
You don't have to duplicate. For example, these lines of your result set:
` CNAME CNAME
1 Perira Hoffman
10 Hoffman Perira
are not identical; Indeed, the two columns are different.
Ideally, it should up to 5 rows, but it does not return these lines for an e.g. Hoffman perish since I'm Perira Hoffman already.
Please report the exact output of the sample data you want. (As said by Hoek, post CREATE TABLE and INSERT statements for the sample data too.)
Tags: Database
Similar Questions
-
Hello
My update with the inner join does not seem to work.
UPDATE RECAP R SET R.FLAVOR = (SELECT FN. FLAVOR_NDC FN FLAVOR, REPLACE CAP R WHERE R.NDC11 = FN. NDC11)
When I write the query above, the inner circle question (SELECT FN. FLAVOR_NDC FN FLAVOR, REPLACE CAP R WHERE R.NDC11 = FN. NDC11) returns multiple lines, and it's a new syntax for me (as I was Teradata and SQL server).
Can you please how this request can be written to make it work?
I get the error message below
SQL error: ORA-01427: einreihig subquery returns multiple rows
01427 00000 - "einreihig subquery returns several lines.1. fix your code:
UPDATE RECAP R SET R.FLAVOR = (SELECT FN.FLAVOR FROM FLAVOR_NDC FN WHERE R.NDC11 = FN.NDC11)
2. you can use the fusion
merge into RECAP R using FLAVOR_NDC FN on(R.NDC11 = FN.NDC11) when matched then update set R.FLAVOR = FN.FLAVOR
Kind regards
Malakshinov Sayan -
Outer join does not not as expected left
Hi all
I have it here are three tables with values. Mentioned the under outer join query does not and behave like the inner query.
CREATE TABLE RET_FUND_FEE
(
NPTF VARCHAR2 (8 CHAR),
TPART VARCHAR2 (4 CHAR)
);
CREATE TABLE PART_PTF
(
Mf_Id VARCHAR2 (6 CHAR) NOT NULL,
TPARTS VARCHAR2 (4 CHAR) NOT NULL
);
CREATE TABLE TFC_FUNDS
(
NPTF VARCHAR2 (8 CHAR) NOT NULL,
MULTIFONDS_ID VARCHAR2 (6 CHAR)
);
INSERT INTO RET_FUND_FEE VALUES('111','A');
INSERT INTO RET_FUND_FEE VALUES('111','D');
INSERT INTO RET_FUND_FEE VALUES('111','E');
INSERT INTO PART_PTF VALUES ('MF1', 'A');
INSERT INTO PART_PTF VALUES ('MF1', 'B');
INSERT INTO PART_PTF VALUES('MF1','C');
INSERT INTO TFC_FUNDS VALUES('111','MF1');
INSERT INTO TFC_FUNDS VALUES('111','MF1');
INSERT INTO TFC_FUNDS VALUES('111','MF1');
SELECT A.TPART, B.TPARTS, A.NPTF, B.Mf_Id, C.MULTIFONDS_ID, C.NPTF
OF RET_FUND_FEE A, PART_PTF B, TFC_FUNDS C
WHERE A.NPTF = C.NPTF
AND C.MULTIFONDS_ID = B.Mf_Id
AND A.TPART = B.TPARTS (+)
AND C.MULTIFONDS_ID = 'MF1 '.
AND C.NPTF = '111'
Here, I expect all records in the RET_FUND_FEE table that I am using outer join.
But I'm only corresponding chronogram RET_FUND_FEE, PART_PTF as an inner join. Can you get it someone please let me know what lack us.
Is my version of oracle 11g
SELECT
A.TPART, B.TPARTS, A.NPTF, B.Mf_Id, C.MULTIFONDS_ID, C.NPTF
Of
PART_PTF B
Join
C TFC_FUNDS
on (C.MULTIFONDS_ID = B.Mf_Id
AND C.MULTIFONDS_ID = 'MF1 '.
AND C.NPTF = '111'
)
right outer join
RET_FUND_FEE HAS
on (A.TPART = B.TPARTS
and A.NPTF = C.NPTF) - added as correction
TPART TPARTS NPTF MF_ID MULTIFONDS_ID NPTF A A 111 MF1 MF1 111 A A 111 MF1 MF1 111 A A 111 MF1 MF1 111 E - 111 - - - D - 111 - - - or
SELECT A.TPART, d.TPARTS, A.NPTF, d.Mf_Id, d.MULTIFONDS_ID, d.NPTF
OF RET_FUND_FEE HAS
, (
Select
*
PART_PTF b, TFC_FUNDS C
where B.Mf_Id = C.MULTIFONDS_ID
AND C.MULTIFONDS_ID = 'MF1 '.
AND C.NPTF = '111'
) d
WHERE A.TPART = D.TPARTS (+)
and A.NPTF = D.NPTF (+) - added as a correction
Sorry had to correct the syntax oracle solution.
The first one was bad because it would return also B lines that have no match in C.
Sorry a correction more on these two approaches, missed the second predicate.
-
Hey in the 10 Report Builder Query Builder, I got an error:
Of tblFacility INNER JOIN tblStateProvince ON tblFacility.OIDStateProvince = tblStateProvince What is java.swl.SQLException: [Macromedia] [SequeLinkJDBC Driver] [ODBC Socket] [Microsoft] [ODBC Microsoft Access driver] Join expression not taken in charge.
Why?
Report Designer will automatically join tables only if you have defined a relationship between them in your database.
In Report Designer, you can easily create a join by dragging a field from one table to the related field in the other table. It couldn't be simpler.
See you soon
Eddie
-
Inner join and 'PIVOT' results
Good day to all;
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
"CORE 10.2.0.4.0 Production."
AMT for Solaris: release 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
I have 2 paintings I want to do a query on and then "pivot" results. I understand that, since it is 10 g using the PIVOT operator is not supported.
(Corrected code :)) issues
-Oops, measure twice cut once...create table CT ( DESIGN_ID NUMBER, CT_ID VARCHAR2(15) ) INSERT INTO CT VALUES ('654321','10QWER123456'); INSERT INTO CT VALUES ('987654','7ASDF654987'); INSERT INTO CT VALUES ('321654','82CHEV852963'); create table CXRF ( DESIGN_ID NUMBER, ROW_SEQ_NBR NUMBER, XREF_CT_ID VARCHAR2(15) ) INSERT INTO CXRF VALUES ('654321','1','25ABCD'); INSERT INTO CXRF VALUES ('654321','2','262ABCD'); INSERT INTO CXRF VALUES ('987654','1','14WXYZ'); INSERT INTO CXRF VALUES ('987654','2','34FRED'); INSERT INTO CXRF VALUES ('321654','1','1TOM');
Expected results would look like this:select design_id, ct_id, xref_ct_id from cxrf INNER JOIN ct on(ct.design_id = cxrf.design_id)
DESIGN_ID CT_ID XREF_CT_1 XREF_CT_2
Published by: GMoney on 9 may 2013 08:47
654321 10QWER123456 25ABCD 262ABCD
Published by: GMoney on 9 may 2013 08:49Thanks for posting examples of data and version, however, as said, it would be better if you can test, DDLS is full of typos.
Did you visit the FAQ before posting?
{message: id = 9360005}
There are also effective methods in previous versions of 11 g data pivot.
For example:SQL> select ct.design_id 2 , ct.ct_id 3 , min(case when cxrf.row_seq_nbr = 1 then cxrf.xref_ct_id end) as XREF_CT_1 4 , min(case when cxrf.row_seq_nbr = 2 then cxrf.xref_ct_id end) as XREF_CT_2 5 from cxrf 6 join ct on (ct.design_id = cxrf.design_id) 7 group by ct.design_id, ct.ct_id ; DESIGN_ID CT_ID XREF_CT_1 XREF_CT_2 ---------- ------------ ------------ ------------ 654321 10QWER123456 25ABCD 262ABCD 987654 7ASDF654987 14WXYZ 34FRED 321654 82CHEV852963 1TOM
-
I would like to convert a subselect to use an inner join?
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0
I have the SQL below (it gives the correct data) using several sub selects I want to use in a PS query via the PS request handler. However, Manager queries PS will only a sub select when you create a query, but it will allow an inner join. So, I was hoping to rewrite it as a join but can not understand. Perhaps using a view would work? Or if it happens to be expert PS9.1 out there who might know an effcient way more to create the query that would be great as well. I have several versions of different trails of my SQL inner join if someone wishes to see those.
select business_unit, ledger, fund_code, account, foreign_amount, open_item_key from ps_open_item_gl a where (business_unit, ledger, fund_code, account) in (select business_unit, ledger, fund_code, account from (select business_unit, ledger, fund_code, account, sum(foreign_amount) from ps_open_item_gl b where b.open_item_status = 'O' group by business_unit, fund_code, account, ledger having sum(foreign_amount) = 0)) and open_item_status = 'O' and business_unit not in ('4110', '5301', '6501', '6602') order by 1, 2, 3, 4, 6
Hello
956171 wrote:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0
I have the SQL below (it gives the correct data) using several sub selects I want to use in a PS query via the PS request handler. However, Manager queries PS will only a sub select when you create a query, but it will allow an inner join. So, I was hoping to rewrite it as a join but can not understand.I don't know what you mean by "select sub", or what exactly is the PS limitation.
Are you talking about the query nested in the IN clause? It is not necessary. The following is equivalent to what you posted:select business_unit, ledger, fund_code, account, foreign_amount, open_item_key from ps_open_item_gl a where (business_unit, ledger, fund_code, account) in ( select business_unit, ledger, fund_code, account from ps_open_item_gl b where b.open_item_status = 'O' and business_unit not in ('4110', '5301', '6501', '6602') group by business_unit, ledger, fund_code, account having sum (foreign_amount) = 0 ) and open_item_status = 'O' order by 1, 2, 3, 4, 6
I move the condition 'and business_unit not in ('4110', '5301', '6501', 6602') ' in the subquery just for efficiiency.
I think you would need a subquery, even if you don't re - he writes as a join.
Perhaps using a view would work?
No doubt. Again, I know not what PS objects to, but you can probably hide in a vision where the PS can complain about this.
-
Hi all
I have a few tables with samples as:
As you can see I have Hotels with basic information, persons of type hotel_people (1:baby, 2:young and 3:Adult), which contains the type of people that each hotel can accommodate with min max age and hotel_service that contains the info from the number of rooms and the amount of people that can be in each room.CREATE OR REPLACE TABLE hotel ( hotel_id int NOT NULL , hotel_name varchar2(50) NULL , hotel_address varchar2(100) NULL ); CREATE OR REPLACE TABLE people_type ( people_type_id int NOT NULL , type_des varchar2(30) NOT NULL ); CREATE OR REPLACE TABLE hotel_people ( hotel_id int NOT NULL , people_type_id int NOT NULL , age_min int NULL , age_max int NULL ); CREATE OR REPLACE TABLE hotel_service ( hotel_id int NOT NULL , qty_room int NOT NULL , qty_people int NOT NULL, qty_people_extra int NOT NULL ); insert into hotel(hotel_id, hotel_name, hotel_address) values(1,'hotel1','hotel1 address1'); insert into hotel(hotel_id, hotel_name, hotel_address) values(2,'hotel2','hotel2 address2'); insert into hotel(hotel_id, hotel_name, hotel_address) values(3,'hotel3','hotel3 address3'); insert into hotel(hotel_id, hotel_name, hotel_address) values(4,'hotel4','hotel4 address4'); insert into people_type (people_type_id, type_des) values (1,'Baby'); insert into people_type (people_type_id, type_des) values (2,'Young'); insert into people_type (people_type_id, type_des) values (3,'Adult'); insert into hotel_people (hotel_id, people_type_id, age_min, age_max) values (1,1,0,2); insert into hotel_people (hotel_id, people_type_id, age_min, age_max) values (1,2,3,10); insert into hotel_people (hotel_id, people_type_id, age_min, age_max) values (1,3,11,200); insert into hotel_people (hotel_id, people_type_id, age_min, age_max) values (2,2,3,17); insert into hotel_people (hotel_id, people_type_id, age_min, age_max) values (2,3,18,200); insert into hotel_people (hotel_id, people_type_id, age_min, age_max) values (3,3,18,200); insert into hotel_people (hotel_id, people_type_id, age_min, age_max) values (4,1,0,2); insert into hotel_people (hotel_id, people_type_id, age_min, age_max) values (4,2,3,10); insert into hotel_people (hotel_id, people_type_id, age_min, age_max) values (4,3,11,200); insert into hotel_service (hotel_id, qty_room, qty_people,qty_people_extra) values (1,10,2,1); insert into hotel_service (hotel_id, qty_room, qty_people,qty_people_extra) values (1,5,4,0); insert into hotel_service (hotel_id, qty_room, qty_people,qty_people_extra) values (2,6,2,1); insert into hotel_service (hotel_id, qty_room, qty_people,qty_people_extra) values (2,12,3,1); insert into hotel_service (hotel_id, qty_room, qty_people,qty_people_extra) values (3,10,2,1); insert into hotel_service (hotel_id, qty_room, qty_people,qty_people_extra) values (3,5,4,0); insert into hotel_service (hotel_id, qty_room, qty_people,qty_people_extra) values (4,6,2,1); insert into hotel_service (hotel_id, qty_room, qty_people,qty_people_extra) values (4,12,3,1);
I'm trying to get the records that match my condition as:
1. I want to get the hotels that can accommodate 4 pieces with adults of 3 for each room.
2 get hotels that can accommodate 6 rooms 2 where 2 of the bedrooms can have 1 young (3 people per room) and young people 9 years.
For 1:
For 2:select h.hotel_id, h.hotel_name, ss.qty_room, t.type_des, ss.qty_people, p.age_min, p.age_max from hotel h inner join hotel_service ss on h.hotel_id = ss.hotel_id inner join hotel_people p on h.hotel_id = p.hotel_id inner join people_type t on p.people_type_id = t.people_type_id where ss.qty_room >= 4 and t.people_type_id = 3 and ss.qty_people >= 3
This does not work, the start of the query becomes more complex if I try to search for multiple rooms with a different number of people and children of different ages.select h.hotel_id, h.hotel_name, ss.qty_room, t.type_des, ss.qty_people, p.age_min, p.age_max from hotel h inner join hotel_service ss on h.hotel_id = ss.hotel_id inner join hotel_people p on h.hotel_id = p.hotel_id inner join people_type t on p.people_type_id = t.people_type_id where ss.qty_room >= 6 and ss.qty_people >= 3 and t.people_type_id in (2,3) and 9 between p.age_min and p.age_max
Can anyone help with this?
Thank you
Published by: user9542267 on April 3, 2012 22:26Hello
user9542267 wrote:
... Yes, what I need is a hotel that can accommodate TWO adults and youth. What do you mean by two copies?Right now I read something on the Grand Duke by Gilbert. I also have a book with the complete works of Gilbert, so I can leave it open, and when I see a reference in the commentary, I see exactly what the author is talking about in the book. However, when the comment compares some parts of this game to the other plays of Gilbert, The Yeomen of the Guard , it gets hard, because I have to keep changing the pages in the complete works, and I can't see both at the same time. It would be much easier if I could get a full second copy of the work; then I could leave a copy of the Grand Duke and leave the other copy open to The Yeomen of the Guard . This is similar to what you should do with the table of hotel_people, and what I do with the table scott.emp below.
Imagine (using tables in the scott schema) you have to find the departments where both an analyst and a clerk to work.
This:SELECT DISTINCT d.* FROM scott.dept d JOIN scott.emp e ON d.deptno = e.deptno WHERE job IN ('ANALYST', 'CLERK') ORDER BY d.deptno ;
product
DEPTNO DNAME LOC ------ -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO
because all these departments have either an analyst or a clerk. However, only deptno = 20 a time .
If, instead of a single table of big job, you have a separate table for each Olympic Games, then you might do something like this:SELECT DISTINCT d.* FROM scott.dept d JOIN analyst a ON d.deptno = a.deptno JOIN clerk c ON d.deptno = c.deptno ORDER BY d.deptno ;
Of course, you don't have tables separated like that, but you could generate result sets who behaved as separte tables, for example:
WITH analyst AS ( SELECT * FROM scott.emp WHERE job = 'ANALYST' ) , clerk AS ( SELECT * FROM scott.emp WHERE job = 'CLERK' ) SELECT DISTINCT d.* FROM scott.dept d JOIN analyst a ON d.deptno = a.deptno JOIN clerk c ON d.deptno = c.deptno ORDER BY d.deptno ;
Note that the main request is exactly what I posted earlier.
What produces the right output:DEPTNO DNAME LOC ------ -------------- ------------- 20 RESEARCH DALLAS
There is no need to actually generate separate result sets, however. You can use two copies of the table scott.emp in the same query, as follows:
SELECT DISTINCT d.* FROM scott.dept d JOIN scott.emp a ON d.deptno = a.deptno JOIN scott.emp c ON d.deptno = c.deptno WHERE a.job = 'ANALYST' AND c.job = 'CLERK' ORDER BY d.deptno ;
-
Urgent help please. Inner join caused the error ora-00933
I ran it, works great:
SELECT DIFFERENT EXP. EXP_ID,
EXP. DATU_EXP_WIRE_CENTER_CLLI,
EXP. DATU_EXP_IP,
EXP. DATU_EXP_CLLI,
EXP. DATU_EXP_PORT,
EXP. DATU_EXP_NAME,
EXP. DATU_EXP_CITY,
EXP. DATU_EXP_STATE,
EXP. DATU_EXP_SW_VERSION,
DECODE (LAST_ALARM. LAST_ALARM_DATE, NULL, TO_CHAR (SYSDATE, ' YYYY/MM/DD HH24:MI:SS'),
TO_CHAR (LAST_ALARM. LAST_ALARM_DATE, "YYYY/MM/DD HH24:MI:SS")) AS STATUS_DATE,
DECODE (LAST_ALARM. ALARM_NAME, NULL, "disconnected", LAST_ALARM. ALARM_NAME) AS DATU_STATUS,
DECODE (LAST_ALARM. ALARM_CLASS, NULL, 'OTHER', LAST_ALARM. ALARM_CLASS) AS IS_ERROR_STATUS,
DECODE (LAST_RESOURCE. LAST_ALARM_DATE, NULL, ", TO_CHAR (LAST_RESOURCE. LAST_ALARM_DATE, "YYYY/MM/DD HH24:MI:SS")) AS RESOURCE_STATUS_DATE,
DECODE (LAST_RESOURCE. RESOURCE_CODE_NAME, NULL, ", LAST_RESOURCE. RESOURCE_CODE_NAME) AS RESOURCE_STATUS,
DECODE (LAST_RESOURCE. RESOURCE_CODE_CLASS, NULL, ", LAST_RESOURCE. RESOURCE_CODE_CLASS) AS IS_RESOURCE_ERROR_STATUS,
DECODE (LAST_OPER. LAST_ALARM_DATE, NULL, ", TO_CHAR (LAST_OPER. LAST_ALARM_DATE, "YYYY/MM/DD HH24:MI:SS")) AS OPER_STATUS_DATE,
DECODE (LAST_OPER. OPER_CODE_NAME, NULL, ", LAST_OPER. OPER_CODE_NAME) AS OPER_STATUS,
DECODE (LAST_OPER. OPER_CODE_CLASS, NULL, ", LAST_OPER. OPER_CODE_CLASS) AS IS_OPER_ERROR_STATUS,
EXP BEGIN_MAINT_WINDOW, RTU. RTU_NAME
OF TT_DATU_EXP_UNIT_INFO EXP
left outer join
(SELECT distinct alarmed_datus. EXP_ID, c.ALARM_NAME, c.ALARM_TYPE, c.ALARM_CLASS and alarmed_datus. LAST_ALARM_DATE
Of alarmed_datus (SELECT EXP_ID, MAX (ALARM_TIME) AS LAST_ALARM_DATE FROM TT_DATU_EXP_ALARM_INFO GROUP BY EXP_ID)
inner join TT_DATU_EXP_ALARM_INFO b on b.EXP_ID = alarmed_datus. EXP_ID AND b.ALARM_TIME = alarmed_datus. LAST_ALARM_DATE
inner join TT_DATU_EXP_ALARM_TYPES c on b.ALARM_TYPE = c.ALARM_TYPE
) LAST_ALARM on EXP.. EXP_ID = LAST_ALARM. EXP_ID
left outer join
(SELECT distinct a.EXP_ID, c.RESOURCE_CODE_NAME, c.RESOURCE_CODE_TYPE, c.RESOURCE_CODE_CLASS, a.LAST_ALARM_DATE
FROM (SELECT EXP_ID, MAX (RESOURCE_CODE_TIME) AS LAST_ALARM_DATE
OF TT_DATU_EXP_RESOURCE_CODE_INFO GROUP BY EXP_ID) a
inner join TT_DATU_EXP_RESOURCE_CODE_INFO b on b.EXP_ID = a.EXP_ID AND b.RESOURCE_CODE_TIME = a.LAST_ALARM_DATE
inner join TT_DATU_EXP_RESOURCECODE_TYPES c on b.RESOURCE_CODE_TYPE = c.RESOURCE_CODE_TYPE
) LAST_RESOURCE on EXP.. EXP_ID = LAST_RESOURCE. EXP_ID
left outer join
(SELECT distinct a.EXP_ID, c.OPER_CODE_NAME, c.OPER_CODE_TYPE, c.OPER_CODE_CLASS, a.LAST_ALARM_DATE
FROM (SELECT EXP_ID, MAX (OPER_CODE_TIME) AS LAST_ALARM_DATE
OF TT_DATU_EXP_OPER_CODE_INFO GROUP BY EXP_ID) a
inner join TT_DATU_EXP_OPER_CODE_INFO b on b.EXP_ID = a.EXP_ID AND b.OPER_CODE_TIME = a.LAST_ALARM_DATE
inner join TT_DATU_EXP_OPER_CODE_TYPES c on b.OPER_CODE_TYPE = c.OPER_CODE_TYPE) LAST_OPER on EXP.. EXP_ID = LAST_OPER. EXP_ID
inner join TT_DATU_LRN_MAP on exp. EXP_ID = NAB NAB. EXP_ID AND TRIM (NAB. LRN) AS p_LRN
inner join TT_RTU_TYPES on exp. RTU_TYPE_ID = RTU RTU. RTU_TYPE_ID
WHERE THERE IS NOT (SOME SATELLITE_EXP_ID OF TT_HOST_SATELLITE WHERE EXP. EXP_ID = SATELLITE_EXP_ID)
AND EXP.IS_PRIMARY_ADDRESS LIKE p_isPrimary;
ON THE OTHER
OPEN FOR V_cursor
SELECT EXP. EXP_ID,
EXP. DATU_EXP_WIRE_CENTER_CLLI,
EXP. DATU_EXP_IP,
EXP. DATU_EXP_CLLI,
EXP. DATU_EXP_PORT,
EXP. DATU_EXP_NAME,
EXP. DATU_EXP_CITY,
EXP. DATU_EXP_STATE,
EXP. DATU_EXP_SW_VERSION,
DECODE (LAST_ALARM. LAST_ALARM_DATE, NULL, TO_CHAR (SYSDATE, ' YYYY/MM/DD HH24:MI:SS'), TO_CHAR (LAST_ALARM. LAST_ALARM_DATE, "YYYY/MM/DD HH24:MI:SS")) AS STATUS_DATE,
DECODE (LAST_ALARM. ALARM_NAME, NULL, "disconnected", LAST_ALARM. ALARM_NAME) AS DATU_STATUS,
DECODE (LAST_ALARM. ALARM_CLASS, NULL, 'OTHER', LAST_ALARM. ALARM_CLASS) AS IS_ERROR_STATUS,
DECODE (LAST_RESOURCE. LAST_ALARM_DATE, NULL, ", TO_CHAR (LAST_RESOURCE. LAST_ALARM_DATE, "YYYY/MM/DD HH24:MI:SS")) AS RESOURCE_STATUS_DATE,
DECODE (LAST_RESOURCE. RESOURCE_CODE_NAME, NULL, ", LAST_RESOURCE. RESOURCE_CODE_NAME) AS RESOURCE_STATUS,
DECODE (LAST_RESOURCE. RESOURCE_CODE_CLASS, NULL, ", LAST_RESOURCE. RESOURCE_CODE_CLASS) AS IS_RESOURCE_ERROR_STATUS,
DECODE (LAST_OPER. LAST_ALARM_DATE, NULL, ", TO_CHAR (LAST_OPER. LAST_ALARM_DATE, "YYYY/MM/DD HH24:MI:SS")) AS OPER_STATUS_DATE,
DECODE (LAST_OPER. OPER_CODE_NAME, NULL, ", LAST_OPER. OPER_CODE_NAME) AS OPER_STATUS,
DECODE (LAST_OPER. OPER_CODE_CLASS, NULL, ", LAST_OPER. OPER_CODE_CLASS) AS IS_OPER_ERROR_STATUS,
EXP BEGIN_MAINT_WINDOW, RTU. RTU_NAME
OF TT_DATU_EXP_UNIT_INFO EXP
(in left outer join
SELECT distinct alarmed_datus. EXP_ID, c.ALARM_NAME, c.ALARM_TYPE, c.ALARM_CLASS and alarmed_datus. LAST_ALARM_DATE
Of alarmed_datus (SELECT EXP_ID, MAX (ALARM_TIME) AS LAST_ALARM_DATE FROM TT_DATU_EXP_ALARM_INFO GROUP BY EXP_ID)
inner join TT_DATU_EXP_ALARM_INFO b on b.EXP_ID = alarmed_datus. EXP_ID AND b.ALARM_TIME = alarmed_datus. LAST_ALARM_DATE
inner join TT_DATU_EXP_ALARM_TYPES c on b.ALARM_TYPE = c.ALARM_TYPE)
LAST_ALARM on EXP.. EXP_ID = LAST_ALARM. EXP_ID
left outer join
(SELECT distinct a.EXP_ID, c.RESOURCE_CODE_NAME, c.RESOURCE_CODE_TYPE, c.RESOURCE_CODE_CLASS, a.LAST_ALARM_DATE
FROM (SELECT EXP_ID, MAX (RESOURCE_CODE_TIME) AS LAST_ALARM_DATE
OF TT_DATU_EXP_RESOURCE_CODE_INFO GROUP BY EXP_ID) a
inner join TT_DATU_EXP_RESOURCE_CODE_INFO b on b.EXP_ID = a.EXP_ID AND b.RESOURCE_CODE_TIME = a.LAST_ALARM_DATE
inner join TT_DATU_EXP_RESOURCECODE_TYPES c on b.RESOURCE_CODE_TYPE = c.RESOURCE_CODE_TYPE) LAST_RESOURCE on EXP.. EXP_ID = LAST_RESOURCE. EXP_ID
left outer join
(SELECT distinct a.EXP_ID, c.OPER_CODE_NAME, c.OPER_CODE_TYPE, c.OPER_CODE_CLASS, a.LAST_ALARM_DATE
FROM (SELECT EXP_ID, MAX (OPER_CODE_TIME) AS LAST_ALARM_DATE
OF TT_DATU_EXP_OPER_CODE_INFO GROUP BY EXP_ID) a
inner join TT_DATU_EXP_OPER_CODE_INFO b on b.EXP_ID = a.EXP_ID AND b.OPER_CODE_TIME = a.LAST_ALARM_DATE
inner join TT_DATU_EXP_OPER_CODE_TYPES c on b.OPER_CODE_TYPE = c.OPER_CODE_TYPE
) LAST_OPER on EXP.. EXP_ID = LAST_OPER. EXP_ID ORDER BY EXP. DATU_EXP_CLLI
inner join TT_RTU_TYPES on exp. RTU_TYPE_ID = RTU RTU. RTU_TYPE_ID
WHERE THERE is NOT (SOME SATELLITE_EXP_ID OF TT_HOST_SATELLITE WHERE EXP.. EXP_ID = SATELLITE_EXP_ID) AND EXP.IS_PRIMARY_ADDRESS love
p_isPrimary;
However this one:
SELECT EXP. EXP_ID,
EXP. DATU_EXP_WIRE_CENTER_CLLI,
EXP. DATU_EXP_IP,
EXP. DATU_EXP_CLLI,
EXP. DATU_EXP_PORT,
EXP. DATU_EXP_NAME,
EXP. DATU_EXP_CITY,
EXP. DATU_EXP_STATE,
EXP. DATU_EXP_SW_VERSION,
DECODE (LAST_ALARM. LAST_ALARM_DATE, NULL, TO_CHAR (SYSDATE, ' YYYY/MM/DD HH24:MI:SS'),
TO_CHAR (LAST_ALARM. LAST_ALARM_DATE, "YYYY/MM/DD HH24:MI:SS")) AS STATUS_DATE,
DECODE (LAST_ALARM. ALARM_NAME, NULL, "disconnected", LAST_ALARM. ALARM_NAME) AS DATU_STATUS,
DECODE (LAST_ALARM. ALARM_CLASS, NULL, 'OTHER', LAST_ALARM. ALARM_CLASS) AS IS_ERROR_STATUS,
DECODE (LAST_RESOURCE. LAST_ALARM_DATE, NULL, ", TO_CHAR (LAST_RESOURCE. LAST_ALARM_DATE, "YYYY/MM/DD HH24:MI:SS")) AS RESOURCE_STATUS_DATE,
DECODE (LAST_RESOURCE. RESOURCE_CODE_NAME, NULL, ", LAST_RESOURCE. RESOURCE_CODE_NAME) AS RESOURCE_STATUS,
DECODE (LAST_RESOURCE. RESOURCE_CODE_CLASS, NULL, ", LAST_RESOURCE. RESOURCE_CODE_CLASS) AS IS_RESOURCE_ERROR_STATUS,
DECODE (LAST_OPER. LAST_ALARM_DATE, NULL, ", TO_CHAR (LAST_OPER. LAST_ALARM_DATE, "YYYY/MM/DD HH24:MI:SS")) AS OPER_STATUS_DATE,
DECODE (LAST_OPER. OPER_CODE_NAME, NULL, ", LAST_OPER. OPER_CODE_NAME) AS OPER_STATUS,
DECODE (LAST_OPER. OPER_CODE_CLASS, NULL, ", LAST_OPER. OPER_CODE_CLASS) AS IS_OPER_ERROR_STATUS,
EXP BEGIN_MAINT_WINDOW, RTU. RTU_NAME
OF TT_DATU_EXP_UNIT_INFO EXP
left outer join
(
SELECT distinct alarmed_datus. EXP_ID, c.ALARM_NAME, c.ALARM_TYPE, c.ALARM_CLASS and alarmed_datus. LAST_ALARM_DATE
Of alarmed_datus (SELECT EXP_ID, MAX (ALARM_TIME) AS LAST_ALARM_DATE FROM TT_DATU_EXP_ALARM_INFO GROUP BY EXP_ID)
inner join TT_DATU_EXP_ALARM_INFO b on b.EXP_ID = alarmed_datus. EXP_ID AND b.ALARM_TIME = alarmed_datus. LAST_ALARM_DATE
inner join TT_DATU_EXP_ALARM_TYPES c on b.ALARM_TYPE = c.ALARM_TYPE) LAST_ALARM on EXP.. EXP_ID = LAST_ALARM. EXP_ID
left outer join
(SELECT distinct a.EXP_ID, c.RESOURCE_CODE_NAME, c.RESOURCE_CODE_TYPE, c.RESOURCE_CODE_CLASS, a.LAST_ALARM_DATE
FROM (SELECT EXP_ID, MAX (RESOURCE_CODE_TIME) AS LAST_ALARM_DATE
OF TT_DATU_EXP_RESOURCE_CODE_INFO GROUP BY EXP_ID) a
inner join TT_DATU_EXP_RESOURCE_CODE_INFO b on b.EXP_ID = a.EXP_ID AND b.RESOURCE_CODE_TIME = a.LAST_ALARM_DATE
inner join TT_DATU_EXP_RESOURCECODE_TYPES c on b.RESOURCE_CODE_TYPE = c.RESOURCE_CODE_TYPE) LAST_RESOURCE on EXP.. EXP_ID = LAST_RESOURCE. EXP_ID
left outer join
(SELECT distinct a.EXP_ID, c.OPER_CODE_NAME, c.OPER_CODE_TYPE, c.OPER_CODE_CLASS, a.LAST_ALARM_DATE
FROM (SELECT EXP_ID, MAX (OPER_CODE_TIME) AS LAST_ALARM_DATE
OF TT_DATU_EXP_OPER_CODE_INFO GROUP BY EXP_ID) a
inner join TT_DATU_EXP_OPER_CODE_INFO b on b.EXP_ID = a.EXP_ID AND b.OPER_CODE_TIME = a.LAST_ALARM_DATE
inner join TT_DATU_EXP_OPER_CODE_TYPES c on b.OPER_CODE_TYPE = c.OPER_CODE_TYPE
) LAST_OPER on EXP.. EXP_ID = LAST_OPER. EXP_ID ORDER BY EXP. DATU_EXP_CLLI
inner join TT_RTU_TYPES on exp. RTU_TYPE_ID = RTU RTU. RTU_TYPE_ID
WHERE the EXP.IS_PRIMARY_ADDRESS as p_isPrimary;
It does not work kept send me errors:
[ORA-00933: SQL not correctly completed command]
Any guru can help? I need to have this resolved effect today.
Thanks in advance.
-
Hi all
I am trying to learn something new, and I'm having a little difficulty. I'm trying to learn more about inner joins. I looked at countless books, tutorials, and all the rest have that I can find, but I can't seem to understand that. Nothing I try works.
I have related tables, and I try to get the data to display. I have the database set up as follows:
films (table name) has the movie_id, movie_name and movie_star_rating fields
family_rating (table name) has star_id, star_name, and star_file_name fields
in PHPMyAdmin, I had movies.movie_star_rating internally associated with family_rating.star_id
When I view the data, I'm pulling the table of movies, but instead of having a number, I would like to have displayed family_rating.star_name. I have the following code to do this:
$query="SELECT * FROM movies INNER JOIN family_rating ON movies.movie_star_rating=family_rating.star_id WHERE movies.movie_name_series='$search'"; $result= mysql_query($query)or die (mysql_error()); while($row=mysql_fetch_array($result)){ // Display the data echo $row['movies.movie_name']; echo $row['family_rating.star_file_name']; }
Can someone let me know what I am doing wrong? Thanks for your help.$query = "SELECT * FROM movies, family_rating"
INNER JOIN family_rating ON movies.movie_star_rating = family_rating.star_id
WHERE movies.movie_name_series = '$search';OK, that SQL is not the same as your original post.
> Not unique table/alias: 'family_rating '.
This tells us what's wrong. You specify the two tables after the from clause. Try again with your original query:
$query = "SELECT * FROM movies"
INNER JOIN family_rating ON movies.movie_star_rating = family_rating.star_id
WHERE movies.movie_name_series = '$search'; -
problem with a query, inner join
Hello;
I am trying innerjoin these 2 tables in my request for a page that will allow you to add / modify records. Right now, it tells me that I have a lag of data. I do not see where I was wrong. Can someone help me?
This is my code:< name cfparam = "url. CategoryID"type ="integer"default ="0">
< name cfparam = 'subID' type = 'integer' default = '#url. CategoryID #">"
< name cfparam = "subName" default = "" >
< name cfparam = "CategoryID" default = "" >
< name cfparam = "Name" default = "" >< cfif url. CategoryID GT 0 >
< name cfquery = "categRec" dataSource = "#APPLICATION.dataSource #" >
SELECT merchSubCat.subName, merchSubCat.subID, categories. CategoryID, Categories.Name
OF merchSubCat
JOIN INTERNAL categories
ON merchSubCat.CategoryID = categories. CategoryID
WHERE merchSubCat.subID = < cfqueryparam value = '#url. "CategoryID #" cfsqltype = "cf_sql_integer" >
< / cfquery ><!-if the records were found, store the values->
< cfif categRec.RecordCount EQ 1 >
< cfset CategoryID = categRec.subID >
< cfset subName = categRec.subName >
< cfset CategoryID = categRec.CategoryID >
< cfset Name = categRec.Name >
< / cfif >
< / cfif >It's my mistake:
Run database query error.
[Macromedia] [SequeLink JDBC Driver] [ODBC Socket] [Microsoft] [ODBC Microsoft Access driver] Type in an expression mismatch. The error occurred in C:\Websites\187914kg3\admin\cms\merchant\merchSub-edit.cfm: line 16 14 : INNER JOIN Categories 15 : ON merchSubCat.CategoryID = Categories.CategoryID 16 : WHERE merchSubCat.subID = <cfqueryparam value="#url.CategoryID#" cfsqltype="cf_sql_integer"> 17 : </cfquery> 18 :
I don't see what I did wrong, another pair of eyes can see where I missed something?
Thank you
I think that you just want to use the URL. CategoryID parameter:
Ken Ford
-
The first mention of an inner join of return?
I searched all over the internet a response for that, but I had no luck so far.
Select a.*, BOXES_TABLE a b.Part_Name
inner join PARTS_IN_THE_BOXES_TABLE b on b.BOX_id = a.BOX_id I can modify only this line
where a.BOX.id = 1234
Anyway is to limit the inner join to return only one record? I can't use a where statement for her clause.
I want to return a part name of the largest number in a box, but I can't seem to write a join that will not return everything in this area, because the only id I have is for boxes, and many parts may have the same id box.
Some may show me this, I'll be the King of work tomorrow.You can encapsulate another query autour the big one scary? Something like:
SELECT box_id, col2, col3, part_name FROM (SELECT box_id, col2, col3, part_name, ROW_NUMBER() OVER(PARTITION BY box_id ORDER BY NULL) rn FROM (big scary query) WHERE box_id IN (b1, b2, b3)) WHERE rn = 1
This will return a "random" part in each area. If you have a preference for which part fate, try changing the ORDER OF NULL make favorite part come first in the list
John
-
Help of query SQL - inner joins and the separate results
Hello
ASP VB, SQL Server
I have a structure of data base with 3 tables - users, albums and photos. each user has a identifier unique, each record has a unique albumid and also contains a column with the user name. each record in the photo has a unique id so that store the user name and the album in which the image belongs.
I'm writing a query that returns a list of the albums for a particular user (based on a user name query string) and who will also bring back the id of the first record in the table for each of these albums photo.
the closest I get is to run a query to select albumid albums where userid = varuserid with a join internal on the pictures table to remove the photo ID - problem I then it comes out all the photos from the photos table where userid = varuserid, so when I do a repeat region to display a list of albums for a certain user It produces a list of all the photos where userid = varuserid
I really want to return just a list of ID album based on the username variable, but also to return the first record in the table of photos for each of these albumids
I tried different combinations of inner joins, select distinct etc but no joy.
any suggestion would be appreciated as am floundering here...
First, you must define 'first' with regard to the photos. Is there a
timestamp? They are numbered inside the album? Do you really care who is
"first", or do you want simply a shot? You also neglected to indicate if they are
empty photo albums have been allowed. I assumed that the empty albums are not
allowed.Whatever you decide, the answer will be similar.
SQL Server tends to get better results with joins with subqueries. You will have
See such a written request more often with subqueries, and there isn't
nothing wrong with that, but I'll use a join on a derived table. I have
have not all column names (hint, hint), so I made them, but the
Comments should help out you.SELECT A.Title, P.PhotoID, P.Caption, A.AlbumID, P.ImagePath
FROM dbo. A albums
-build a table derived, consisting of photo ID lowest for each
album.
INNER JOIN (SELECT AlbumID, MIN (PhotoID) AS FirstPhoto FROM dbo. Photos
AlbumID GROUP) AS PM WE A.AlbumID = PM. AlbumID
-details of the photo for the photo shown in the table above
INNER JOIN dbo. Photos P on A.AlbumID = P.AlbumID AND
H. FirstPhoto = P.PhotoID
User A.UserID ='some WHERE '"tedstar" wrote in message
News:ee4pfn$de$1@forums. Macromedia.com...
> I am writing a query that returns a list of the albums for a
> particular user (based on a user name query string) and also bring
> return
> the id of the first record in the table for each of these albums photo. -
Oracle: Inner join syntax
Hello
I am confused with Inner Join syntax.
According to the defination of Inner Join, it is said that
Inner joins return all rows in multiple tables satisfied the join condition.
By the way by examples of inner join in web, join Inner is written in these syntaxes as indicated:
First syntax:
SELECT Person.LastName, Person.FirstName, person Sales.OrderNo INNER JOIN sales on Person.P_Id = Sales.P_Id
Second syntax:
SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date
FROM the suppliers orders
WHERE suppliers.supplier_id = orders.supplier_id;
Please tell me if the keyword Inner Join its use is mandatory or not?
Thank you for reading.user672373773 wrote:
First of all, thanks Anurag to your prompt response.I have a request here, please tell me why oracle has provided two syntax? This is the ANSI and non-ANSI syntax
I know, it's the Oracle had a format no ANSI to join since its initial versions. In later versions, oracle decided to except ANSI format too since Oracle want to support the ansi format in almost everything.
So since he was using the ansi non format, it can't support/stop using only for backward compatibility and also it as having the users to use the ansi format, it is both.
Concerning
Anurag -
ORA-01719: outer join operator (+) not allowed in operand of GOLD or IN
I'm migrating a stored procedure (package) in Oracle 11 g. The SQL has an outer join, combined with a "GOLD":
Select a.row1, a.row2, b.row3, b.row4, c.row5, c.row6
schema1.table1 a, schema1.table2 b, schema2.table3 c
where
((c.orgunit = a.org (+) and b.newaccount (+) and TO_CHAR(c.createdatetime,'MM/DD/YYYY = c.account and c.feed = 'FOO' ') = TO_CHAR (SYSDATE, ' DD/MM/YYYY'))
or
((c.feed = 'BAR' and c.orgunit = a.org (+) and c.account b.newaccount (+) and TO_CHAR(c.createdatetime,'MM/DD/YYYY =') = TO_CHAR (SYSDATE, ' DD/MM/YYYY'));
The error is:
ORA-01719: outer join operator not allowed in operand of GOLD or IN
* Cause: Outer join appears in a clause or.
* Action: If A and B are predicates, to achieve the effect of (has or B).
I do not understand how to apply the suggested action to my query above. Can anyone provide a solution or a workaround?
Thank you.
your base table is c, a and b must be attached to the left
Select a.row1, a.row2, b.row3, b.row4, c.row5, c.row6
of schema2.table3 c
Join schema1.table1 left a c.orgunit on = a.org
c.account left join schema1.table2 b = b.newaccount
where c.createdatetime > = trunc (sysdate)
and c.createdatetime<>
and (c.feed = 'FOO' or c.feed = 'BAR');
-
Do not import duplicates missing in LR CC 6.2
The new import dialog box doesn't have an option to do not import duplicates.
The new import dialog box doesn't have an option to do not import duplicates.
This option has been removed from LR 6.2 / CC 2015.2, as well as several other import options. The developers of Adobe products rarely participate here, so please add your vote and view detailed in the official Adobe feedback forum: Lightroom: restore the features removed import into LR 6.2 / CC 2015.2. The most votes and opinions, detailed, more likely it is Adobe might pay attention.
Maybe you are looking for
-
I downloaded ff7.0 and the orange rectangle appeared, but now I can find is no longer at the top of the page my tools, help and other things that I need.Someone would be kind enough to help me?Thank youLeeflea.
-
NB520: Start Windows 7 - How to start safe mode startup and uninstall failure
HelloI can't use it on my Windows 7 boot (Notebook NB520), the system uninstall the program to uninstall search.us.com - a virus/malware. I searched the forums for help and tried to launch the program malwarebytes anti-malware, who reported the virus
-
Why when I type the cursor jumps and the words in the previous sentence
When I type an email the cursor seems to go to what I wrote previously. I have to stop and go back to elimanate the words so I can continue typing. This boring and tedious. The words blend together in the early writings. What is the cause?
-
Unable to connect my printer HP Deskjet 1055 all-in-One J410 series from my HP 15 laptop computer after upgrading Windows 8 to 10 of Windows
-
Upgrade Windows 7 to use Upgrade Wizard using an MSDN subscription
Hello As a BizSpark company, we want to improve our computer to Windows 7 to 8.1 using our MSDN subscription, is possible. Mzamose