Query for Getting previous date in oracle in specifc scenario
I have the below data in a table A which i need to insert into table B along with one compute column.
TABLE A:
Account_No | Balance | As_on_date
1001 |-100 | 1-Jan-2013
1001 |-150 | 2-Jan-2013
1001 | 200 | 3-Jan-2013
1001 |-250 | 4-Jan-2013
1001 |-300 | 5-Jan-2013
1001 |-310 | 6-Jan-2013
Table B:
In table B,there should be no of days to be shown when balance is negative and the date one which it has gone into negative.
So,for 6-Jan-2013,this table should show below data:
Account_No | Balance | As_on_date | Days_passed | Start_date
1001 | -310 | 6-Jan-2013 | 3 | 4-Jan-2013
Here,no of days should be the days when the balance has gone negative in recent time and not from the old entry.
I need to write a sql query to get the no of days passed and the start date from when the balance has gone negative.
I tried to formulate a query using Lag analytical function,but i am not getting how should i check the first instance of negative balance by traversing back using LAG function. Even the first_value function was given a try but not getting how to partition in it based on negative value.
Any help or direction on this will be really helpful.
Thanks
I think you can apply the Tabibitoshan method here. The query is more complex but performs better than other methods. For an explanation, see Tabibitosan method tutorial by Aketi Jyuuzou
The idea behind the method is to identify "continuous" records without gaps. Here I identify records that are "continuous" because they contain an uninterrupted series of negative balances.
drop table t;
CREATE TABLE t (Account_No , Balance , As_on_date) AS SELECT
1001 ,-100 , to_date('1-Jan-13', 'DD-MON-YY') FROM dual UNION ALL SELECT
1001 ,-150 , to_date('2-Jan-13', 'DD-MON-YY') FROM dual UNION ALL SELECT
1001 , 200 , to_date('3-Jan-13', 'DD-MON-YY') FROM dual UNION ALL SELECT
1001 ,-250 , to_date('4-Jan-13', 'DD-MON-YY') FROM dual UNION ALL SELECT
1001 ,-300 , to_date('5-Jan-13', 'DD-MON-YY') FROM dual UNION ALL SELECT
1001 ,-310 , to_date('6-Jan-13', 'DD-MON-YY') FROM dual;
SELECT Account_No, Balance, to_char(As_on_date, 'DD-MON-YYYY') as_on_date,
CASE
WHEN balance < 0
THEN row_number() OVER(PARTITION BY account_no, grp ORDER BY as_on_date)
END days_passed,
CASE
WHEN balance < 0
THEN to_char(
first_value(as_on_date) OVER(PARTITION BY account_no, grp ORDER BY as_on_date),
'DD-MON-YYYY'
end start_date
from (
SELECT Account_No, Balance, As_on_date,
CASE WHEN balance >= 0 THEN NULL ELSE
row_number() OVER(PARTITION BY account_no ORDER BY as_on_date) -
sum(CASE WHEN balance < 0 THEN 1 ELSE 0 END) OVER(PARTITION BY account_no ORDER BY as_on_date)
end grp
FROM t
order by account_no, As_on_date;
ACCOUNT_NO
BALANCE
AS_ON_DATE
DAYS_PASSED
START_DATE
1001
-100
01-JAN-2013
1
01-JAN-2013
1001
-150
02-JAN-2013
2
01-JAN-2013
1001
200
03-JAN-2013
1001
-250
04-JAN-2013
1
04-JAN-2013
1001
-300
05-JAN-2013
2
04-JAN-2013
1001
-310
06-JAN-2013
3
04-JAN-2013
Similar Messages
-
Query for getting Workcenter data
Dear Professionals,
I got an issue where user needs the data from the work center. So i made a query joining the table CRHD, CRCO, CRCA & CRTX here for all the Tables OBJID & OBJTY is available, but the query results in "no data found". Am i doing some mistake else is there any other way i could get the data.
Thanks in advance
Regards
Prashant.PillaiHi there,
try the following:
1. link CRHD- CRCO with left outer join - do You have the data in both table? if yes
2. change CRHD-CRCO to inner join and add CRCA with left outer join - do You have the data?
(No need the text tabe You can find it in add fields in query)
Br -
How to get Item-Code wise stock quantity and value for a previous date
Dear Sir,
As per the government legal requirement , we are required to furnish a list for items having stock as on a date ( date is not the current date but it is some past date) and in the list we need to provide material wise stock quantity and value .
We can generate a list for the current date , but do not know how to get it for a previous date .
We request you to kindly guide us about such a list .
With Thanks and Regards
Sonia Agarwalhi,
might be this reports will be help full for your requirement.
MMBE
MB53
MB52
MB5M
MB5B
MB5T
MBLB
MBBS
MB54
ME56
Thanking you -
Query to get the data of all the columns in a table except any one column
Can anyone please tell how to write a query to get the data of all the columns in a table except one particular column..
For Example:
Let us consider the EMP table.,
From this table except the column comm all the remaining columns of the table should be listed
For this we can write a query like this..
Select empno, ename, job, mgr, sal, hiredate, deptno from emp;
Just to avoid only one column, I mentioned all the remaining ( 7 ) columns of the table in the query..
As the EMP table consists only 8 columns, it doesn't seem much difficult to mention all the columns in the query,
but if a table have 100 columns in the table, then do we have to mention all the columns in the query..?
Is there any other way of writing the query to get the required result..?
Thanks..Your best best it to just list all the columns. Any other method will just cause more headaches and complicated code.
If you really need to list all the columns for a table because you don't want to type them, just use something like...
SQL> ed
Wrote file afiedt.buf
1 select trim(',' from sys_connect_by_path(column_name,',')) as columns
2 from (select column_name, row_number() over (order by column_id) as column_id
3 from user_tab_cols
4 where column_name not in ('COMM')
5 and table_name = 'EMP'
6 )
7 where connect_by_isleaf = 1
8 connect by column_id = prior column_id + 1
9* start with column_id = 1
SQL> /
COLUMNS
EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,DEPTNO
SQL> -
Query for getting all function and procedure inside the packages
hi All
Please provide me Query for getting all function and procedure inside the packages
thanksAs Todd said, you can use user_arguments data dictionary or you can join user_objects and user_procedures like below to get the name of the packaged function and procedure names.
If you are looking for the packaged procedures and functions source then use user_source data dictionary
select a.object_name,a.procedure_name from user_procedures a,
user_objects b
where a.object_name is not null
and a.procedure_name is not null
and b.object_type='PACKAGE'
and a.object_name=b.object_name -
UPDATE query for GEOMETRY (spatial data)
Hi,
how to update values dynamically for this geometry type " MDSYS.SDO_GEOMETRY(2002,8307,MDSYS.SDO_POINT_TYPE(0,0,'null'),MDSYS.SDO_ELEM_INFO_ARRAY(1,2,1),MDSYS.SDO_ORDINATE_ARRAY(-0.44106912,0.46456902,-0.72306504,0.09942102))" please help me.Thanks Reetesh for your reply.
As this is a simple task I wan't to do it via OAF query rather than writing PL/SQL procedure.
I have two tables , say error table and interface table, (there is a foreign key relation ship between these tables, ie. i have to show the interface name present in the interface table via the foreign key in the error table). I used the following query to get the data
SELECT xxgblErrorMasterEO1.ERROR_ID_NO,
xxgblErrorMasterEO1.ERROR_CODE,
xxgblErrorMasterEO1.ERROR_MESSAGE,
xxgblErrorMasterEO1.CREATED_BY,
xxgblErrorMasterEO1.CREATION_DATE,
xxgblErrorMasterEO1.LAST_UPDATED_BY,
xxgblErrorMasterEO1.LAST_UPDATE_DATE,
xxgblIntfProgramMaster.INTERFACE_NAME,
xxgblErrorMasterEO1.ERROR_TYPE
FROM XXEEG.XXGBL_ERROR_MASTER xxgblErrorMasterEO1,
XXEEG.XXGBL_INTF_PROGRAM_MASTER xxgblIntfProgramMaster
where xxgblErrorMasterEO1.INTERFACE_ID_NO =
xxgblIntfProgramMaster.INTERFACE_ID_NO
I like the idea of Advanced table while going through the tutorial (example 2) and would want to show certain fields by expanding on the + mark ( just like in the explorer)
now i want to update any of the fields that i show to the user (except the WHO fields). Say for example if the user updates the error_message and Interface_name, so how should i write the update method in the AM ?
Pardon me if this sounds simple :( -
Query for getting records max reported timestamp and 2nd max report
query for getting records in between
max reported timestamp and 2nd max reported timestamp
HERE IS ALL RESULT SET
TIME DOMAIN
30:jun:2006:20:08:45 TOMCAT
30:jun:2006:20:08:45 TOMCAT
30:jun:2006:20:07:04 TOMCAT
30:jun:2006:20:07:04 TOMCAT
30:jun:2006:20:07:24 TOMCAT
30:jun:2006:20:07:24 TOMCAT
30:jun:2006:20:07:45 TOMCAT
30:jun:2006:20:07:45 TOMCAT
30:jun:2006:20:08:05 TOMCAT
30:jun:2006:20:07:04 TOMCAT
30:jun:2006:20:08:05 TOMCAT
PD_REPORTED_TIMESTAM PD_USER
30:jun:2006:20:08:25 TOMCAT
30:jun:2006:20:08:25 TOMCAT
30:jun:2006:20:08:45 TOMCAT
30:jun:2006:20:08:45 TOMCAT
30:jun:2006:20:07:24 TOMCAT
30:jun:2006:20:07:04 TOMCAT
30:jun:2006:20:07:24 TOMCAT
30:jun:2006:20:07:45 TOMCAT
30:jun:2006:20:07:45 TOMCAT
30:jun:2006:20:08:05 TOMCAT
30:jun:2006:20:08:05 TOMCAT
PD_REPORTED_TIMESTAM PD_USER
30:jun:2006:20:08:25 TOMCAT
30:jun:2006:20:08:25 TOMCAT
QUERY RESULT TO COME
TIME DOMAIN
TOMCAT 30:jun:2006:20:08:45
TOMCAT 30:jun:2006:20:08:45
TOMCAT 30:jun:2006:20:08:45
TOMCAT 30:jun:2006:20:08:45
Message was edited by:
user517983Hi,
can we write query like this.
1 select pd_user,PD_REPORTED_TIMESTAMP
2 from sp_process_detail_current spdc
3 where host_id='DSCP02469'and pd_user='TOMCAT'
4 and exists(
5 select PD_REPORTED_TIMESTAMP from sp_process_detail_current
6* having max(PD_REPORTED_TIMESTAMP)-spdc.PD_REPORTED_TIMESTAMP=0)
SQL> /
PD_USER PD_REPORTED_TIMESTAM
TOMCAT 30:jun:2006:20:08:45
TOMCAT 30:jun:2006:20:08:45
TOMCAT 30:jun:2006:20:08:45
TOMCAT 30:jun:2006:20:08:45 -
Some one please provide query for getting REMIT TO ADDRESS details by using the column RA_CUSTOMER_TRX_ALL.REMIT_TO_ADDRESS_ID
try
select ct.remit_to_address_id,
raa_remit_ps.party_site_number,
raa_remit_loc.state,
ft_remit.territory_short_name,
ct.*
from ra_customer_trx_all ct,
hz_cust_acct_sites_all raa_remit,
hz_party_sites raa_remit_ps,
hz_locations raa_remit_loc,
fnd_territories_vl ft_remit
where 1 = 1
and ct.remit_to_address_id = raa_remit.cust_acct_site_id(+)
and raa_remit.party_site_id = raa_remit_ps.party_site_id(+)
and raa_remit_loc.location_id(+) = raa_remit_ps.location_id
and raa_remit_loc.country = ft_remit.territory_code(+) -
Query for getting Responsibility, Menu and submenus
Hi,
I need one query for getting Responsibilites, menus, submenus agian submenus like that..
Pls share the query any body have.
Thanks in advance,
Hanimi.See user487104's post in Re: How to check a function is accessible under responsibility? .
He has given a script to build the output. -
Need a query for export table data .....
Hi,
I need a query for exporting the data in a table to a file.
Can anyone help me ?
Thanking You
JeneeshSQL> spool dept.txt
SQL> select * from dept;
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> spool off
SQL> ed dept.txt -
Query for getting data for every quarter for financial year
Hi,
My problem is I need to get the data for every quarter for financial year and also I need data for every week for financial year.
For example for financial year 2012-13, Apr2012 to Jun2012 would be Q1, Jul2012 to Sep2012 would be Q2 and so on. Total 8quarters should come upto Apr2013.
In the same way 1st apr 2012 to 7th apr 2012 would be week1, 8th apr to 15th apr would be week2 and son on. How to write a query for this scenario in oracle. Can anybody help me on this. very urgent..
Thanks in advance.lakmesri wrote:
Hi,
My problem is I need to get the data for every quarter for financial year and also I need data for every week for financial year.
For example for financial year 2012-13, Apr2012 to Jun2012 would be Q1, Jul2012 to Sep2012 would be Q2 and so on. Total 8quarters should come upto Apr2013.
In the same way 1st apr 2012 to 7th apr 2012 would be week1, 8th apr to 15th apr would be week2 and son on. How to write a query for this scenario in oracle. Can anybody help me on this. very urgent..
Thanks in advance.
How can you get 8 quarters within a year ? I'b be concerned here.
lakmesri wrote:
Hi,
In the same way 1st apr 2012 to 7th apr 2012 would be week1, 8th apr to 15th apr would be week2 and son on. How to write a query for this scenario in oracle. Can anybody help me on this. very urgent..
Thanks in advance.
First, that question is really not clearly asked. Second how could it be urgent ? You even did not tell us your Oracle version, did not show any tables descr, output sample nor any effort on your side to work on.
Nicolas. -
Oracle SQL query for getting specific special characters from a table
Hi all,
This is my table
Table Name- Table1
S.no Name
1 aaaaaaaa
2 a1234sgjghb
3 a@3$%jkhkjn
4 abcd-dfghjik
5 bbvxzckvbzxcv&^%#
6 ashgweqfg/gfjwgefj////
7 sdsaf$([]:'
8 <-fdsjgbdfsg
9 dfgfdgfd"uodf
10 aaaa bbbbz#$
11 cccc dddd-/mnm
The output has to be
S.no Name
3 a@3$%jkhkjn
5 bbvxzckvbzxcv&^%#
7 sdsaf$([]:'
8 <-fdsjgbdfsg
10 aaaa bbbbz#$
It has to return "Name" column which is having special characters,whereas some special chars like -, / ," and space are acceptable.
The Oracle query has to print columns having special characters excluding -,/," and space
Can anyone help me to get a SQL query for the above.
Thanks in advance.You can achieve it in multiple ways. Here are few.
SQL> with t
2 as
3 (
4 select 1 id, 'aaaaaaaa' name from dual union all
5 select 2 id, 'a1234sgjghb' name from dual union all
6 select 3 id, 'a@3$%jkhkjn' name from dual union all
7 select 4 id, 'abcd-dfghjik' name from dual union all
8 select 5 id, 'bbvxzckvbzxcv&^%#' name from dual union all
9 select 6 id, 'ashgweqfg/gfjwgefj////' name from dual union all
10 select 7 id, 'sdsaf$([]:''' name from dual union all
11 select 8 id, '<-fdsjgbdfsg' name from dual union all
12 select 9 id, 'dfgfdgfd"uodf' name from dual union all
13 select 10 id, 'aaaa bbbbz#$' name from dual union all
14 select 11 id, 'cccc dddd-/mnm' name from dual
15 )
16 select *
17 from t
18 where regexp_like(translate(name,'a-/" ','a'), '[^[:alnum:]]');
ID NAME
3 a@3$%jkhkjn
5 bbvxzckvbzxcv&^%#
7 sdsaf$([]:'
8 <-fdsjgbdfsg
10 aaaa bbbbz#$
SQL> with t
2 as
3 (
4 select 1 id, 'aaaaaaaa' name from dual union all
5 select 2 id, 'a1234sgjghb' name from dual union all
6 select 3 id, 'a@3$%jkhkjn' name from dual union all
7 select 4 id, 'abcd-dfghjik' name from dual union all
8 select 5 id, 'bbvxzckvbzxcv&^%#' name from dual union all
9 select 6 id, 'ashgweqfg/gfjwgefj////' name from dual union all
10 select 7 id, 'sdsaf$([]:''' name from dual union all
11 select 8 id, '<-fdsjgbdfsg' name from dual union all
12 select 9 id, 'dfgfdgfd"uodf' name from dual union all
13 select 10 id, 'aaaa bbbbz#$' name from dual union all
14 select 11 id, 'cccc dddd-/mnm' name from dual
15 )
16 select *
17 from t
18 where translate
19 (
20 lower(translate(name,'a-/" ','a'))
21 , '.0123456789abcdefghijklmnopqrstuvwxyz'
22 , '.'
23 ) is not null;
ID NAME
3 a@3$%jkhkjn
5 bbvxzckvbzxcv&^%#
7 sdsaf$([]:'
8 <-fdsjgbdfsg
10 aaaa bbbbz#$
SQL> -
Sql query to get Thursday (Date) for the year 2014
Hello All,
I want to get the date for all the Thursdays in the year 2014. How can I achieve this using SQL query? Can anybody give me a hand with this? Thanks.
AmolHi,
Check if this can help you
DECLARE @counter INT
DECLARE @Date Date
SELECT @counter = 0
Select @Date = '20131226'
WHILE @counter <= 52
BEGIN
select Thursday = convert(varchar(10),DATEADD(WEEK,1, @Date),120)
SELECT @counter = @counter + 1
Select @Date = DATEADD(WEEK,1, @Date)
END
Regards
Prasad Tandel
Please dont forget to mark as answer if this helps you :) -
Oracle query for getting discrepancy equip codes
I need help in getting a query for discrepancy equip_code
select distinct eq.dept_id,eq.drive_id,equip_code,eq.qc_subtype_id,staff_id
from qc_equipment_used eq, qc_daily qc
where eq.drive_id = qc.drive_id
and trunc(eq.create_time) = '06-aug-2012'
and out_of_service = 'N'
and eq.qc_subtype_id in (1026,1012)
and eq.drive_id = 'DRV2016637'
DEPT_ID|DRIVE_ID|EQUIP_CODE|QC_SUBTYPE_ID|STAFF_ID
95|DRV2016637|HEMORYA121|1012|0011
95|DRV2016637|HEMORYA121|1026|0011
95|DRV2016637|HEMORYA148|1012|0011
I need help in getting a query to show the user that
95|DRV2016637|HEMORYA148|1012|0011
was qc'd in the morning but not in the evening for 1026You still refuse to read {message:id=9360002} and follow the Forum Etiquette?
How sad for you, since less volunteers will help you. -
Sql Query for getting data between two dates
Dear Sir,
I have one problem, i have date stored in varchar datatype of (X) table in mysql as it was not supporting the date format of (dd/mm/yyyy) so know the problem is,
When i going to get the data between the the two dates it is giving the un reliable answers such that
when i am asking the query as data between 1st April to 31st December 2009 it is showing the data from the 2008 .
is there any way to solve this problem,please help this is an urgent requirement, your replay will be helpful to me.
With Regards
Ramakrishna YYou either have a SQL problem and this is the incorrect place to ask.
Or you have a Java problem in code we cannot see. When posting code use the code tags. Click the CODE button and paste your code between the tags that appear.
Maybe you are looking for
-
Sent this Letter to CEO, Emailed Support, Tweeted and Still NO Response
Not sure how to get anyone's attention here, but the complete disregard for my situation guarantees that I'm taking my business elsewhere. Hubert Joly CEO 7601 Penn Ave. S Richfield, MN 55423 RE: {removed per forum guidelines} and {removed per foru
-
I have gotten this message saying that my startup disc is full. I know I need to dump the trash can on my home screen and I have done that. I know that there is both trash and junk in my mail app that I will dump also but I am curious as to the size
-
Whenever i try to open firefox an alert comes up, then it crashes.
Every time I try to open Firefox, an alert box comes up that says this:Could not initialize the application's security component. The most likely cause is problems with files in your application's profile directory. Please check that this directory h
-
PPro CS4 crashing when running on RAID 1
Hi I used to have Premiere Pro CS4 running reasonably stable on a i7 920/12GB RAM, Vista Business system, with data on 2x 1TB Samsung Spinpoint HDD's in a RAID 1 (mirror) arrangement. The RAID is Intel's Rapid Storage Technology off a Gigabyte X58 mo
-
PowerShell - Start-Job - Synchronised Array list
Hi all, I am trying to write a script using start-job against a list of machines. The script is to query a target machine event log using get-winevent cmdlet. I supply the whole code that queries the eventlog in a scriptblock. In order to capture the