Query In Query Can I do this???
hi every viewer,
Is it possible that in reports group query i use another query in the existing query for another column
e.g
select t1.code,t1.detail, sum(t1.dr), sum(t1.cr), ( select sum(t1.dr)-sum(t1.cr) from t1 where t1.code = t1.code and t1.sdate < '01-feb-09' ) obal
from t1 where t1.code between 1 and 10 and t1.sdate between '01-feb-09' and '20-feb-09'
group by code, detail
order by code;
in the above example my problem is describe below...
select t1.code,t1.detail, sum(t1.dr), sum(t1.cr), ( select sum(t1.dr)-sum(t1.cr) from t1 where t1.code = t1.code ==>
*****here i get the problem how to mention the codes i sellected before to match with these codes ******
in thiis query the resulting obal is same for all the codes but i want the result for each row consisting of single code in a row,
is there any solution for that
Regards
M. Laeeque A.
Should work if you give the used table aliases, something like:
select outer.code,
outer.detail,
sum(outer.dr),
sum(outer.cr),
(select sum(inner.dr)-sum(inner.cr)
from t1 inner
where inner.code = outer.code
and inner.sdate < 'X' ) obal
from t1 outer
where outer.code between 1 and 10
and outer.sdate between '01-feb-09' and '20-feb-09'
group by code, detail
order by code;
Similar Messages
-
How can I perform this kind of range join query using DPL?
How can I perform this kind of range join query using DPL?
SELECT * from t where 1<=t.a<=2 and 3<=t.b<=5
In this pdf : http://www.oracle.com/technology/products/berkeley-db/pdf/performing%20queries%20in%20oracle%20berkeley%20db%20java%20edition.pdf,
It shows how to perform "Two equality-conditions query on a single primary database" just like SELECT * FROM tab WHERE col1 = A AND col2 = B using entity join class, but it does not give a solution about the range join query.I'm sorry, I think I've misled you. I suggested that you perform two queries and then take the intersection of the results. You could do this, but the solution to your query is much simpler. I'll correct my previous message.
Your query is very simple to implement. You should perform the first part of query to get a cursor on the index for 'a' for the "1<=t.a<=2" part. Then simply iterate over that cursor, and process the entities where the "3<=t.b<=5" expression is true. You don't need a second index (on 'b') or another cursor.
This is called "filtering" because you're iterating through entities that you obtain from one index, and selecting some entities for processing and discarding others. The white paper you mentioned has an example of filtering in combination with the use of an index.
An alternative is to reverse the procedure above: use the index for 'b' to get a cursor for the "3<=t.b<=5" part of the query, then iterate and filter the results based on the "1<=t.a<=2" expression.
If you're concerned about efficiency, you can choose the index (i.e., choose which of these two alternatives to implement) based on which part of the query you believe will return the smallest number of results. The less entities read, the faster the query.
Contrary to what I said earlier, taking the intersection of two queries that are ANDed doesn't make sense -- filtering is the better solution. However, taking the union of two queries does make sense, when the queries are ORed. Sorry for the confusion.
--mark -
How can i improve this query.
Hi guys i am beginner , just wanted to know some info , how can i improve this query ..
select *
from tableA A, viewB B,
where A.key = B.key
and a.criteria1 = '111'
and a.criteria2 = some_funtion(a.key)
one more thing should function should be on left side of equal sign.
will a join make it better or something else is needed more than that .952936 wrote:
Hi guys i am beginner , just wanted to know some info , how can i improve this query ..
select *
from tableA A, viewB B,
where A.key = B.key
and a.criteria1 = '111'
and a.criteria2 = some_funtion(a.key)
one more thing should function should be on left side of equal sign.
will a join make it better or something else is needed more than that .If you are a beginner try to learn the ANSI Syntax. This will help you a lot to write better queries.
Your select would look like this in ANSI.
select *
from tableA A
JOIN viewB B ON A.key = B.key
WHERE a.criteria1 = '111'
and a.criteria2 = some_function(a.key);The good thing here is that this separates the typical joining part of the select from the typical filter criteria.
The other syntax very often let you forget one join. Just because there are so many tables and so many filters, that you just don't notice correctly anymore what was join and what not.
If you notice that the number of column is not what you expect, you can easiely modify the query and compare the results.
example A
Remove View B from the query (temporarily comment it out).
select *
from tableA A
--JOIN viewB B ON A.key = B.key
WHERE a.criteria1 = '111'
and a.criteria2 = some_funtion(a.key)
example B
You notice, that values from A are missing. Maybe because there is no matching key in ViewB? Then change the join to an outer join.
select *
from tableA A
LEFT OUTER JOIN viewB B ON A.key = B.key
WHERE a.criteria1 = '111'
and a.criteria2 = some_funtion(a.key)(The outer keyword is optional, left join would be enough). -
I can't use this query on 10G, but can use on 9i
I have ever used bellow query and no error
SQL>select so.* from bsowner.sales_orders so left join bsowner.relation_address rla on (so.customerid = rla.relationid and so.delivery_addressid = rla.addressid ) and rla.addresstype = (select code from bsowner.tab_addtyp where config1=3)
When I use on 10G, I can't query
1* select so.* from bsowner.sales_orders so left join bsowner.relation_address rla on (so.customerid = rla.relationid and so.delivery_addressid = rla.addressid ) and rla.addresstype = (select code from bsowner.tab_addtyp where config1=3)
SQL> /
select so.* from bsowner.sales_orders so left join bsowner.relation_address rla on (so.customerid = rla.relationid and so.delivery_addressid = rla.addressid ) and rla.addresstype = (select code from bsowner.tab_addtyp where config1=3)
ERROR at line 1:
ORA-01799: a column may not be outer-joined to a subquery
Help me,Please
Why I can't use this on 10G?
when i change = to in , i can use
but i don't want to change
help me for the reasonI don't this gonna work on 9i either.
Chang your query to
select so.* from bsowner.sales_orders so left join bsowner.relation_address rla on (so.customerid = rla.relationid and so.delivery_addressid = rla.addressid )
Where
rla.addresstype = (select code from bsowner.tab_addtyp where config1=3) -
Can we make this query shorter....?
hi there
Can any body help me in reducing the number of lines in this query ! I am using union to concat 3 queries. Select fields in every query are same and in where condition also most of the joins are same in every query. but in where clause only two conditions are different. Can we make this 3 queries into one becoze entire select statement fields are same and most of the where conditions are same !
Below is the query:
SELECT
au1.bu_id,
au1.first_nam,
au1.last_nam,
c.id,
c.first_nam_d,
c.last_nam_d,
c.birth_dte_d,
c.ssn_num_d,
se.id schd_event_id,
seu.dsc,
ssc.dsc,
sea.access_typ,
sea.ATTENDEE_TYP
FROM
CLIENT c,
APP_USER au1,
SCHD_STAT_CD ssc,
schd_event_url seu,
schd_evnt se,
SCHD_evnt_stat ses,
SCHD_EVNT_ATTENDEE sea,
CLIENT_APPT ca
WHERE
c.id = ca.client_id_k AND
au1.bu_id = se.APP_USER_BU_ID_PRIME_K AND
ssc.code = ses.SCHD_STAT_CD_CODE_K AND
seu.code = se.SCHD_EVNT_URL_CODE_K AND
se.id = ses.SCHD_EVNT_ID_K AND
se.id = sea.SCHD_EVNT_ID_K(+) AND
se.id = ca.SCHD_EVNT_ID_K AND
sea.ATTENDEE_TYP(+) = 'WORKER' AND
ses.create_ts = (select max(create_ts) FROM SCHD_evnt_stat ses1 WHERE ses1.SCHD_EVNT_ID_K = ses.SCHD_EVNT_ID_K)
UNION
SELECT
au1.bu_id,
au1.first_nam,
au1.last_nam,
c.id,
c.first_nam_d,
c.last_nam_d,
c.birth_dte_d,
c.ssn_num_d,
se.id schd_event_id,
seu.dsc,
ssc.dsc,
FROM
CLIENT c,
APP_USER au1,
SCHD_STAT_CD ssc,
schd_event_url seu,
schd_evnt se,
SCHD_evnt_stat ses,
SCHD_EVNT_ATTENDEE sea,
CLIENT_APPT ca
WHERE
c.id = ca.client_id_k AND
au1.bu_id = se.APP_USER_BU_ID_PRIME_K AND
ssc.code = ses.SCHD_STAT_CD_CODE_K AND
seu.code = se.SCHD_EVNT_URL_CODE_K AND
se.id = ses.SCHD_EVNT_ID_K AND
se.id = sea.SCHD_EVNT_ID_K AND
se.id = ca.SCHD_EVNT_ID_K AND
sea.ATTENDEE_TYP = 'ROLE' AND
ses.create_ts = (select max(create_ts) FROM SCHD_evnt_stat ses1 WHERE ses1.SCHD_EVNT_ID_K = ses.SCHD_EVNT_ID_K)
UNION
SELECT
au1.bu_id,
au1.first_nam,
au1.last_nam,
c.id,
c.first_nam_d,
c.last_nam_d,
c.birth_dte_d,
c.ssn_num_d,
se.id schd_event_id,
seu.dsc,
ssc.dsc,
sea.access_typ,
sea.ATTENDEE_TYP
FROM
CLIENT c,
APP_USER au1,
SCHD_STAT_CD ssc,
schd_event_url seu,
schd_evnt se,
SCHD_evnt_stat ses,
SCHD_EVNT_ATTENDEE sea,
CLIENT_APPT ca
WHERE
c.id = ca.client_id_k AND
au1.APP_ROLE_NAM_DESKTOP_K = sea.ATTENDEE_ID_K AND
ssc.code = ses.SCHD_STAT_CD_CODE_K AND
seu.code = se.SCHD_EVNT_URL_CODE_K AND
se.id = ses.SCHD_EVNT_ID_K AND
se.id = sea.SCHD_EVNT_ID_K AND
se.id = ca.SCHD_EVNT_ID_K AND
sea.ATTENDEE_TYP = 'ROLE' AND
ses.create_ts = (select max(create_ts) FROM SCHD_evnt_stat ses1 WHERE ses1.SCHD_EVNT_ID_K = ses.SCHD_EVNT_ID_K)
Thanks in advance
prasanth a.s.Hi,
it is difficult to change this query without the possibility to test it in a worksheet. But try the following query.
I think it should be the same result as your 3 queries.
SELECT au1.bu_id,
au1.first_nam,
au1.last_nam,
c.id,
c.first_nam_d,
c.last_nam_d,
c.birth_dte_d,
c.ssn_num_d,
se.id schd_event_id,
seu.dsc,ssc.dsc,
decode(sea.access_typ,NULL,' ',sea.access_typ) AS sea.access_typ,
decode(sea.ATTENDEE_TYP,NULL,' ',sea.ATTENDEE_TYP) AS sea.ATTENDEE_TYP
FROM CLIENT c,
APP_USER au1,
SCHD_STAT_CD ssc,
schd_event_url seu,
schd_evnt se,
SCHD_evnt_stat ses,
SCHD_EVNT_ATTENDEE sea,
CLIENT_APPT ca
WHERE c.id = ca.client_id_k
AND au1.bu_id = se.APP_USER_BU_ID_PRIME_K
AND ssc.code = ses.SCHD_STAT_CD_CODE_K
AND seu.code = se.SCHD_EVNT_URL_CODE_K
AND se.id = ses.SCHD_EVNT_ID_K
AND se.id = ca.SCHD_EVNT_ID_K
AND ses.create_ts = (select max(create_ts)
FROM SCHD_evnt_stat ses1
WHERE ses1.SCHD_EVNT_ID_K = ses.SCHD_EVNT_ID_K)
AND
(sea.ATTENDEE_TYP(+) = 'WORKER' AND se.id = sea.SCHD_EVNT_ID_K(+)) --clause of the 1st query
OR
(sea.ATTENDEE_TYP = 'ROLE' AND se.id = sea.SCHD_EVNT_ID_K) --clause of the 2nd query
OR
(sea.ATTENDEE_TYP = 'ROLE' AND se.id = sea.SCHD_EVNT_ID_K AND au1.APP_ROLE_NAM_DESKTOP_K = sea.ATTENDEE_ID_K) --clause of the 3rd query
); -
Can we replace this SELECT query by more efficient code
can we replace this SELECT query by more efficient code ?:-
SELECT * FROM zv7_custord
INTO TABLE G_T_ZV7_CUSTORD
WHERE ( SENDER in S_SENDER and
ORDNUM in S_ORDER and
ZDATE in S_DATE ) OR
( SENDER in S_SENDER AND
STATUS = SPACE )
ORDER BY IDOCNUM.Hi
U can leave ORDER BY option and sort the table by yourself and try to split the query:
SELECT * FROM zv7_custord
INTO TABLE G_T_ZV7_CUSTORD
WHERE SENDER in S_SENDER and
ORDNUM in S_ORDER and
ZDATE in S_DATE .
SELECT * FROM zv7_custord
APPENDING TABLE G_T_ZV7_CUSTORD
WHERE SENDER in S_SENDER and
NOT ORDNUM in S_ORDER and
NOT ZDATE in S_DATE and
STATUS = SPACE
or
SELECT * FROM zv7_custord
INTO TABLE G_T_ZV7_CUSTORD
WHERE SENDER in S_SENDER and
ORDNUM in S_ORDER and
ZDATE in S_DATE .
SELECT * FROM zv7_custord
APPENDING TABLE G_T_ZV7_CUSTORD
WHERE SENDER in S_SENDER and
STATUS = SPACE.
* Sort the table key fields
SORT G_T_ZV7_CUSTORD BY <KEY1> <KEY2> .....
DELETE ADJACENT DUPLICATES FROM G_T_ZV7_CUSTORD COMPARING <KEY1> .....
Max -
How can i join this two query?
I have two table table employee and CSEReduxResponses
In table employee i have
CREATE TABLE [dbo].[employee](
[emp_id] [int] IDENTITY(1,1) NOT NULL,
[emp_namefirst] [varchar](255) NOT NULL,
[emp_namemiddle] [varchar](50) NULL,
[emp_namelast] [varchar](255) NOT NULL
on responds i have
CREATE TABLE [dbo].[CSEReduxResponses](
[response_id] [int] IDENTITY(1,1) NOT NULL,
[employee] [int] NOT NULL,
[employeedept] [int] NOT NULL,
[star] [tinyint] NOT NULL,
[status] [int] NOT NULL,
[approvedby] [int] NULL,
[approveddate] [datetime] NULL,
[execoffice_status] [int] NULL,
Im trying to get the employee with the MAX execpffice_status( this is either a 1 or 0).
i have this query that i made for it
select top(1) with ties employee, SUM(execoffice_status) as 'total'
from CSEReduxResponses
group by employee
order by 'total' desc
my query for employee table is
select emp_namefirst as first , emp_namelast as [last]
from phonelist.dbo.employee where emp_namefirst is not null
How can i get this 2 query together so i can output the employee (first and last )name
with the max exeoffice_status?
i use :
Microsoft SQL Server Management Studio 10.0.2531.0
ps: sorry if i put this is the wrong forum, this is my first time here and first post.Are you looking for the below?
CREATE TABLE [dbo].[employee](
[emp_id] [int] IDENTITY(1,1) NOT NULL,
[emp_namefirst] [varchar](255) NOT NULL,
[emp_namemiddle] [varchar](50) NULL,
[emp_namelast] [varchar](255) NOT NULL
Insert into Employee Values('abc','bcd','cdf')
Insert into Employee Values('xyz','yxw','xwv')
CREATE TABLE [dbo].[CSEReduxResponses](
[response_id] [int] IDENTITY(1,1) NOT NULL,
[employee] [int] NOT NULL,
[employeedept] [int] NOT NULL,
[star] [tinyint] NOT NULL,
[status] [int] NOT NULL,
[approvedby] [int] NULL,
[approveddate] [datetime] NULL,
[execoffice_status] [int] NULL,
Insert into [CSEReduxResponses]( employee,employeedept,star,status,approvedby,approveddate,execoffice_status)
Values(1,100,1,1,1,GETDATE(),0),
(1,100,1,1,1,GETDATE(),1),
(2,100,1,1,1,GETDATE(),0)
;With cte as( Select *,SUM([execoffice_status]) over(partition by Employee) sumstatus From [CSEReduxResponses] )
Select Distinct A.*,B.sumstatus
From Employee A
Inner Join cte B On A.emp_id = B.employee
--OR
;With cte as( Select employee ,SUM([execoffice_status]) sumstatus From [CSEReduxResponses] group by Employee)
Select Distinct A.*,(Select sumstatus From cte B where A.emp_id = B.employee)
From Employee A
Drop table Employee,[CSEReduxResponses] -
Can anyone explain this query.?
Can anyone explain this query.?
select nvl(s.p_id,q.p_id),nvl(s.p_type,q.p_type),nvl(s.p_line,q.p_line),
nvl(s.sales2004,0),nvl(s.sales2005,0),nvl(q.quota2004,0),nvl(q.quota2005,0)
from sales s
full outer join quota q on(s.p_id = q.p_id and s.p_type=q.p_type and s.p_line=q.p_line)from sales s full outer join quota qTable quota is outer joined to table sales , if there are no matching records in table quota then also the query retuns the sales record with null values for the corresponding quota record columns
NVL() has been used to handle such cases -
Can anyone expalin this FMS query?
Dear Expert,
Can anyone expalin this FMS query, which follows
Query1:
IF $[ORDR.U_QuoOppNum] is NULL or $[ORDR.U_QuoOppNum] = ''
BEGIN
SELECT T0.Name as 'Segments'
FROM [dbo].[@SEGMENT] T0
Where SUBSTRING( T0.Code, 1, 3 ) = SUBSTRING( $[ORDR.U_QuoTypSeg], 1, 3)
END
ELSE
SELECT T0.U_OppSeg FROM OOPR T0 where T0.OpprId = $[ORDR.U_QuoOppNum]
Query2:
SELECT code
FROM [@SEGMENT] T0
Where SUBSTRING( T0.Code, 1, 3 ) = SUBSTRING( $[ORDR.U_QuoTypSeg], 1, 3)
AND Name = $[ORDR.U_QuoSeg]
Thanks in advance,
DwarakDear Dwarak,
The 1st query assign UDF U_OppSeg value from Sales Opportunity to Sales order if U_QuoOppNum in sales order matches opportunity ID. Otherwise, assign Name value in UDT @SEGMENT where the first 3 letters match with sales order UDF U_QuoTypSeg.
The 2nd query is the first part of the previous query after IF. I explained in the 2nd half.
Thanks,
Gordon -
How can I make this complex query?
I donât know how can I do this complex query...
I have the tables Customers, Vehicles and Models. A customer can have 0-N Vehicles and a vehicle have 1 Model.
Customers: ID_Customer (PK), Name, LastName...
Vehicles: ID_Vehicle (PK), ID_Customer, ID_Model, date_sale
Models: ID_Modelo (PK), Model_Name
Then I need to know the buy average time (date_sale) between 2 models (ID_Model)
For example I have these Vehicles:
ID_Vehicle (PK)...ID_Customer...ID_Model....date_sale
1................................123....................1.............21/05/2000
2................................459....................3............ 16/08/2000
3................................123....................2............ 28/06/2001
4................................516....................1............ 09/09/2001
5................................459....................4............ 18/10/2002
6................................516....................2............ 20/12/2002
If I want to know the buy average time (date_sale) between ID_Model 1 and ID_Model 2 it is. (403 + 467) / 2 = 435 days !!!
* Customer 123 (model 1 to 2): 25/06/2001 â 21/05/2000 ==> 403 days
* Customer 516 (model 1 to 2): 01/12/2002 â 01/05/2000 ==> 467 days.
I need to do the query for all the combination models. For example If I have the Models 1, 2 and 3 I need to obtain:
Source_Model.....Target_Model....Buy_Average_Time
1......................................1....................... xxx days
1......................................2....................... xxx days
1......................................3....................... xxx days
2......................................1....................... xxx days
2......................................2....................... xxx days
2......................................3....................... xxx days
3......................................1....................... xxx days
3......................................2....................... xxx days
3......................................3....................... xxx days
If it is necessary I could create a table with the fields Source_Model, Target_Model and Buy_Average_Time for accelerate the query time response.
But how can I do this query??????????
Thanks very much!!!Hi,
Thanks for your reply but It is not correct for me because the Customer could have several vehicles in her life.
If I make the query with my examples data it is OK
ID_Vehicle (PK)...ID_Customer...ID_Model....date_sale
1................................123....................1.............21/05/2000
2................................459....................3............ 16/08/2000
3................................123....................2............ 28/06/2001
4................................516....................1............ 09/09/2001
5................................459....................4............ 18/10/2002
6................................516....................2............ 20/12/2002
select v1.id_model as source_model,
v2.id_model as target_model,
avg (v2.date_sale - v1.date_sale) || ' days' as buy_average_time
from vehicles v1,
vehicles v2
where v1.id_customer = v2.id_customer
and v2.date_sale > v1.date_sale
group by v1.id_model, v2.id_model;
I received:
SOURCE_MODEL TARGET_MODEL BUY_AVERAGE_TIME
..............1................................2.....................................435 days
..............3................................4.....................................793 days
But If I insert a new vehicle:
ID_Vehicle (PK)...ID_Customer...ID_Model....date_sale
7................................516....................3............ 16/08/2003
And I execute the query now I receive:
SOURCE_MODEL TARGET_MODEL BUY_AVERAGE_TIME
..............1................................2...........................435 days
..............1................................3...........................706 days
..............2................................3...........................239 days
..............3................................4...........................793 days
It is NO correct because I donât have the 1 (Source_model) to 3 (Target_model) combination in the Vehicles data!!! (I have 1 to 2 and 2 to 3 but NO 1 to 3!!!!).
Then the query is not OK for me!
Besides If I modify the Vehicle 7 data and put ID_Model = 2:
ID_Vehicle (PK)...ID_Customer...ID_Model....date_sale
7................................516....................2............ 16/08/2003
I received:
SOURCE_MODEL TARGET_MODEL BUY_AVERAGE_TIME
..............1................................2...........................525,33 days
..............2................................2...........................239 days
..............3................................4...........................793 days
It is NO correct because the BUY_AVERAGE_TIME for 1 to 2 combination is 435 days (the same of the original query) because I aggregate only the combination 2 to 2 with the ID_VEHICLE 7
Below I attach the examples scripts.
Could you help me with this query, please?
Thanks very much!
CREATE TABLE VEHICLES
ID_VEHICLE NUMBER(9),
ID_CUSTOMER NUMBER(9),
ID_MODEL NUMBER(9),
DATE_SALE DATE
TABLESPACE USERS
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
LOGGING
NOCACHE
NOPARALLEL;
INSERT INTO VEHICLES ( ID_VEHICLE, ID_CUSTOMER, ID_MODEL, DATE_SALE ) VALUES (
1, 123, 1, TO_Date( '05/21/2000 12:00:00 AM', 'MM/DD/YYYY HH:MI:SS AM'));
INSERT INTO VEHICLES ( ID_VEHICLE, ID_CUSTOMER, ID_MODEL, DATE_SALE ) VALUES (
2, 459, 3, TO_Date( '08/16/2000 12:00:00 AM', 'MM/DD/YYYY HH:MI:SS AM'));
INSERT INTO VEHICLES ( ID_VEHICLE, ID_CUSTOMER, ID_MODEL, DATE_SALE ) VALUES (
3, 123, 2, TO_Date( '06/28/2001 12:00:00 AM', 'MM/DD/YYYY HH:MI:SS AM'));
INSERT INTO VEHICLES ( ID_VEHICLE, ID_CUSTOMER, ID_MODEL, DATE_SALE ) VALUES (
4, 516, 1, TO_Date( '09/09/2001 12:00:00 AM', 'MM/DD/YYYY HH:MI:SS AM'));
INSERT INTO VEHICLES ( ID_VEHICLE, ID_CUSTOMER, ID_MODEL, DATE_SALE ) VALUES (
5, 459, 4, TO_Date( '10/18/2002 12:00:00 AM', 'MM/DD/YYYY HH:MI:SS AM'));
INSERT INTO VEHICLES ( ID_VEHICLE, ID_CUSTOMER, ID_MODEL, DATE_SALE ) VALUES (
6, 516, 2, TO_Date( '12/20/2002 12:00:00 AM', 'MM/DD/YYYY HH:MI:SS AM'));
INSERT INTO VEHICLES ( ID_VEHICLE, ID_CUSTOMER, ID_MODEL, DATE_SALE ) VALUES (
7, 516, 2, TO_Date( '08/16/2003 12:00:00 AM', 'MM/DD/YYYY HH:MI:SS AM'));
COMMIT;
CREATE TABLE MODELS
ID_MODELO NUMBER(9),
MODEL_NAME VARCHAR2(25 BYTE)
TABLESPACE USERS
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
LOGGING
NOCACHE
NOPARALLEL;
INSERT INTO MODELS ( ID_MODELO, MODEL_NAME ) VALUES (
1, 'MODEL 1');
INSERT INTO MODELS ( ID_MODELO, MODEL_NAME ) VALUES (
2, 'MODEL 2');
INSERT INTO MODELS ( ID_MODELO, MODEL_NAME ) VALUES (
3, 'MODEL 3');
INSERT INTO MODELS ( ID_MODELO, MODEL_NAME ) VALUES (
4, 'MODEL 4');
COMMIT;
CREATE TABLE CUSTOMERS
ID_CUSTOMER NUMBER(9),
NAME VARCHAR2(25 BYTE),
LASTNAME VARCHAR2(25 BYTE)
TABLESPACE USERS
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT
LOGGING
NOCACHE
NOPARALLEL;
INSERT INTO CUSTOMERS ( ID_CUSTOMER, NAME, LASTNAME ) VALUES (
123, 'Customer 123', 'A');
INSERT INTO CUSTOMERS ( ID_CUSTOMER, NAME, LASTNAME ) VALUES (
459, 'Customer 459', 'B');
INSERT INTO CUSTOMERS ( ID_CUSTOMER, NAME, LASTNAME ) VALUES (
516, 'Customer 516', 'C');
INSERT INTO CUSTOMERS ( ID_CUSTOMER, NAME, LASTNAME ) VALUES (
318, 'Customer 318', 'D');
COMMIT; -
Can anyone tell me how can i optimize this query...
Can anyone tell me how can i optimize this query ??? :
Select Distinct eopersona.numident From rscompeten , rscompet , rscv , eopersona , rscurso , rseduca , rsexplab , rsinteres
Where ( ( (LOWER (rscompeten.nombre LIKE '%caracas%') AND ( rscompeten.id = rscompet.idcompeten ) AND ( rscv.id = rscompet.idcv ) AND ( eopersona.id = rscv.idpersona ) )
OR ( (LOWER (rscurso.nombre) LIKE '%caracas%') AND ( rscv.id = rscurso.idcv ) AND ( eopersona.id = rscv.idpersona ) )
OR ( (LOWER (rscurso.lugar) LIKE '%caracas%') AND ( rscv.id = rscurso.idcv ) AND ( eopersona.id = rscv.idpersona ) )
OR ( (LOWER (rseduca.univinst) LIKE '%caracas%)' AND ( rscv.id = rseduca.idcv ) AND ( eopersona.id = rscv.idpersona ) )
OR ( (LOWER (rsexplab.nombempre) LIKE '%caracas%' AND ( rscv.id = rsexplab.idcv ) AND ( eopersona.id = rscv.idpersona ) )
OR ( (LOWER (rsinteres.descrip) LIKE '%caracas%' AND ( rscv.id = rsinteres.idcv ) AND ( eopersona.id = rscv.idpersona ) )
OR ( (LOWER (rscv.cargoasp) LIKE '%caracas%' AND ( eopersona.id = rscv.idpersona ) )
OR ( LOWER (eopersona.ciudad) LIKE '%caracas%' AND ( eopersona.id = rscv.idpersona )
PLEASE IF YOU FIND SOMETHING WRONG.. PLEASE HELP ME.. this query takes me aproximatelly 10 minutes and the database is really small ( with only 200 records on each table )You are querying eight tables, however in any of your OR predicates you're only restricting 3 or 4 of those tables. That means that the remaining 4 or 5 tables are generating cartesian products. (n.b. the cartesian product of 5 tables with 200 rows each results in g 200^5 = 320,000,000,000 rows) Then you casually hide this behind "distinct".
A simple restatement of your requirements looks like this:
Select eopersona.numident
From rscompeten,
rscompet,
rscv,
eopersona
Where LOWER (rscompeten.nombre) LIKE '%caracas%'
AND rscompeten.id = rscompet.idcompeten
AND rscv.id = rscompet.idcv
AND eopersona.id = rscv.idpersona
UNION
Select eopersona.numident
From rscurso ,
rscv,
eopersona
Where LOWER (rscurso.nombre) LIKE '%caracas%'
AND rscv.id = rscurso.idcv
AND eopersona.id = rscv.idpersona
UNION
Select eopersona.numident
From rscurso ,
rscv,
eopersona
Where LOWER (rscurso.lugar) LIKE '%caracas%'
AND rscv.id = rscurso.idcv
AND eopersona.id = rscv.idpersona
UNION
...From there you can eliminate redundancies as desired, but I imagine that the above will perform admirably with the data volumes you describe. -
select CASE WHEN TO_NUMBER(SUBSTR(TO_CHAR(START_TIME_TIMESTAMP,'DDMMYYYY HH24:MM:SS'),13,2))>0 AND TO_NUMBER(SUBSTR(TO_CHAR(START_TIME_TIMESTAMP,'YYYYMMDD HH24:MM:SS'),13,2)) <14
THEN TO_DATE(CONCAT(SUBSTR(TO_CHAR(START_TIME_TIMESTAMP,'YYYYMMDD HH24:MM:SS'),13,2)||'00',SUBSTR(TO_CHAR(START_TIME_TIMESTAMP,'YYYYMMDD HH24:MI:SS'),16)||'00'),'DD-MM-YYYY HH24:MI:SS') end
from table;
i have written this query.whats wrong with this query..........
the error is "literal does not match format string"
Reegards soumenWhy does your date_format loose, ununify and not fix ?
And what is your exact requirement?
>>
CASE WHEN
TO_NUMBER(SUBSTR(TO_CHAR(START_TIME_TIMESTAMP,'DDMMYYYY HH24:MM:SS'),13,2))>0
AND TO_NUMBER(SUBSTR(TO_CHAR(START_TIME_TIMESTAMP,'YYYYMMDD HH24:MM:SS'),13,2)) <14
<<
This is
CASE WHEN TO_CHAR(START_TIME_TIMESTAMP,'MM') between '01' and '13'
>>
THEN TO_DATE(CONCAT(SUBSTR(TO_CHAR(START_TIME_TIMESTAMP,'YYYYMMDD HH24:MM:SS'),13,2)
||'00',
SUBSTR(TO_CHAR(START_TIME_TIMESTAMP,'YYYYMMDD HH24:MI:SS'),16)||'00'),
'DD-MM-YYYY HH24:MI:SS')
<<
This is
TO_DATE(
TO_CHAR(START_TIME_TIMESTAMP,'MM"00"SS"00"),
'DD-MM-YYYY HH24:MI:SS')
Obviously, format is not matching !
SQL> select to_char(sysdate,'MM"00"SS"00') from dual;
TO_CHAR(
06004900
SQL> select to_date('06004900','DD-MM-YYYY HH24:MI:SS') from dual;
select to_date('06004900','DD-MM-YYYY HH24:MI:SS') from dual
ERROR at line 1:
ORA-01861: literal does not match format string -
Dear Sir/Madam
I am trying to update Ios7 for iPhone 4 but there is an unknown error occurred like (-23). My Laptop OS is Windows 08.ios 7 update which can updated and remaining 30minutes are left out. Than after error which can be show as i have mentioned above.
How can i resolved this error? So please help me.
Thanks & Regards,
Vatsal DesaiError 20, 21, 23, 26, 28, 29, 34, 36, 37, 40
These errors typically occur when security software interferes with the restore and update process. Use the steps to troubleshoot security software issues to resolve this issue. In rare cases, these errors may be a hardware issue. If the errors persist on another computer, the device may need service.
Also, check your hosts file to verify that it's not blocking iTunes from communicating with the update server. See the steps under the heading "Blocked by configuration (Mac OS X / Windows) > Rebuild network information > Mac OS X > The hosts file may also be blocking the iTunes Store." If you have software used to perform unauthorized modifications to the iOS device, uninstall this software prior to editing the hosts file to prevent that software from automatically modifying the hosts file again on restart.
all of this from
iTunes: Specific update-and-restore error messages and advanced troubleshooting -
How can i run this query in BI Answers
Hi,
pls tell me how can i run this sql statement in BI Answers....???
select abc_date,abc_asset_desc,sum(nvl(abc_market_val_lcy,0)+nvl(abc_accr_lcy,0)) "total balance" from abc
group by abc_date,abc_asset_desc;any help would be appriciated.... :-)
RegardsStrange question this one.
normally with Answers you pick the columns you want to report on and the BI server will construct the SQL for you.
In this example you would need a star with the abc dimension logical table and a logical fact for abc (these can be in the same table), which has a calculated field for 'Total Balance'.
You then pick the columns you require and Answer and the BI will automatically add the group by.
Adrian
Majendi -
Query can run in Oracle 10g but very slow in 11g
Hi,
We've just migrated to Oracle 11g and we noticed that some of our view are very slow (it takes seconds in 10g and takes 30 minutes in 11g), and the tables are using the local table.
Do any of you face the same issue?
This is our query:
SELECT
A.wellbore
,a.depth center
,d.MD maxbc
,d.XDELT xbc
,d.YDELT ybc
,e.MD minac
,e.XDELT xac
,e.YDELT yac
from
table_A d,table_A e, table_B a
where a.wellbore = d.WELLBORE (+)
and a.wellbore = e.WELLBORE(+)
and d.MD = (select max(MD) from table_A b where b.MD < a.depth and
d.wellBORE = b.wellBORE)
and e.md = (select min(md) from table_A c where c.MD > a.depth and
e.wellBORE = c.wellBORE);Thanks I will move to the correct one..
Rafi,
Build the Indexes and it is still slow. I am querying from a view from another database, which is in 10g instances.
Moved: Query can run in Oracle 10g but very slow in 11g
Edited by: 924400 on Apr 1, 2012 6:03 PM
Edited by: 924400 on Apr 1, 2012 6:26 PM
Maybe you are looking for
-
Problem connecting external monitor on VGA port
I've had a Dell SP2309W connected to my Thinkpad W530 running Windows 8 Pro since I got it without a problem. A couple of days ago I disconnected the monitor to plug it in to another computer to do something; after returning the monitor, it is no lon
-
HELP!!!----Quicktime error
I just tried to open i tunes and i get the quicktime version 7.0d0 is installed, itunes requires 7.1.3 or later. Please reinstall itunes. I tried re-installing from the itunes site the latest s/w but i keep getting the same problems.... Help please.
-
Can there be 1 or many Release Groups assigned to a Release code and vice versa? Please clarify. - Pallu
-
How do i have copies of the forms sent to my email once they are filled out
how do i have copies of the filled out forms sent to my email once they submit?
-
What and Where is the basic photo format and size info????
I am new at this but an experienced graphic designer. I work in print often so I take high resolution images. Using still photos I want to make movies with titles and effects, music that are emailable and facebook friendly. Do I need to down size pho