I have bills and payments for a customer, a customer may make many payments against 1 bill. I want to figure out the time taken from bill issue date to the time the balance of the customer falls to less then 10% of the most recent bill.I have managed to compute the running balance for the customer
So something like:
DATE AMT BILL_AMT BILL_DATE BALANCE
6-Oct-11 38533 38533 6-Oct-11 38533
20-Sep-12 -6000 0
6-Dec-11 78552 78552 6-Dec-11 78552
[code]....
But I need to know when the running balance falls beneath 10% of the previous bill.
I thought a way to do this would be to keep the same bill amount in the BILL_AMT column until the BILL_AMT is not null which means that a new bill has been issued.
I can't use LAG because the number of records I am going back by increases by 1 for each row where the BILL_AMT is null.I also can't use a running total because I don't want the total for all of the records for the customer, just the total (i.e. the bill amount and all intervening nulls (which would be the bill amount)) since the last bill?
i.e. how can I keep the same value in a field as long as the values in that field are null and then adopt a new value when there is a non-null value?
I have a table where i need to update one field values based on another field of the same table , simply as it is.I have done this using one select all check box , on clicking that all check boxes of item_trans table will get selected , then i will un select some of check box and then using one button, i will update the value of the fields which are checked only.
I have put the sample code but when i am updating its taking long time and hanging.I am also attaching the form based on the test case provided.
insert into item_trans(TRANS_ITEM,TRANS_QTY,TRANS_ACT_QTY) VALUES ('TREE1',40,NULL); insert into item_trans(TRANS_ITEM,TRANS_QTY,TRANS_ACT_QTY) VALUES ('TREE2',20,NULL); insert into item_trans(TRANS_ITEM,TRANS_QTY,TRANS_ACT_QTY) VALUES ('TREE3',20,NULL);
--i want to set the value of trans_Act_qty as trans_qty
--i create one dummy or test block to keep the select all check box. for that table test script is
CREATE TABLE TEST ( C VARCHAR2(2000 BYTE), B NUMBER, A NUMBER );
insert into test (C,B,A) values ('A',1,1);
--code written in select all check box which is created on test.block.
BEGIN GO_BLOCK('item_trans'); FIRST_RECORD; LOOP :M_END_YN := :M_END_ALL; [code].......
--code written in M_END_YN ( actual check boxes where i will uncheck).
IF :M_END_YN = 'N' THEN :M_END_ALL := 'N'; END IF;
--code written on button to update those values which are checked.
BEGIN GO_BLOCK('item_trans'); FIRST_RECORD; LOOP IF :M_END_YN = 'Y' THEN [code]......
What i wnat is to update the Customer_inactive_date with the Incative_date field from Customer_type based on their Customer_type... So james and Jill would have their rows updated in this scneario ..How can i achive this in pl/Sql
I have teh code using merge function..I want something in traditional old fashion..
I'm wanting a query that will look up a named field and return all of the tables that it is held in. I've tried looking through manually but the database has hundreds of tables
I have two master tables , one is supplier master and the other customer, the requirement is , i will pass a code as IN parameter and the result it should bring the appropriate name of that code , for example if i pass a code which exists in supplier master , it should get me the supplier name for that code , if i pass code which exists in customer ,it should bring customer name.
CREATE TABLE OM_CUST (CUST_CODE VARCHAR2(30),CUST_NAME VARCHAR2(240)); INSERT INTO OM_CUST VALUES ('1001','CUST1'); INSERT INTO OM_CUST VALUES ('1002','CUST2'); CREATE TABLE OM_SUPP (SUPP_CODE VARCHAR2(30),SUPP_NAME VARCHAR2(240)); INSERT INTO OM_SUPP VALUES ('2001','SUPP1'); INSERT INTO OM_SUPP VALUES ('2002','SUPP2');
i want to call same lov for 3 diff. field.....if possible how can i call it...because while desiging lov , returns item only 1 out of 3 field..how can it possible.
orderheader and orderdetails. orderheader is a master table and orderdetails is a detail table. So for every one record in orderheader table, there are many records in orderdetails table. I want to update a field in orderdetails table from a orderheader table using inner join.
update orderdetails set orderdetails.conversion_dt = (select orderheader.conversion_dt from orderheader, orderdetails where orderheader.number= orderdetails.number )
I get the following error:
Error report: SQL Error: ORA-01427: single-row subquery returns more than one row 01427. 00000 - "single-row subquery returns more than one row"
Using Oracle 10g2 I'm trying to create a ctx index, using CTX_DLL atributtes.
begin CTX_DDL.CREATE_PREFERENCE ('LEXER_SINTILDES', 'BASIC_LEXER'); CTX_DDL.SET_ATTRIBUTE ('LEXER_SINTILDES', 'BASE_LETTER', 'YES'); end;
drop index se.INDEX_PRONUMJNE_CTX;
CREATE INDEX INDEX_PRONUMJNE_CTX on TBL_PRONUM (MyBlobColumn) INDEXTYPE IS CTXSYS.CONTEXT parameters('sync (on commit) LEXER LEXER_SINTILDES');However, I got errors: ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine ORA-20000: Oracle Text error: DRG-10700: preference does not exist: LEXER_SINTILDES ORA-06512: at "CTXSYS.DRUE", line 160 ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 364
Is it possible to create this kind of indexes for blob fields? Or just for varchar field
I am working on an application that requires very dynamic access to data. Users will build queries through the interface and the queries will be stored in VARCHAR fields for later use. The function that later uses the query has no way of knowing the field names or data types used in the selection query.
This isn't an issue in any program language that I have used before but in this case, we want to do this in a package within Oracle rather than an external application.
how to reference a field by its location or position in the query.
We need to get the list of fields so we know what each field is named and we need to be able to get at its value dynamically as well. If possible, checking the data type would be useful too but that is less important in this case.If we were doing this in say PHP, we could simply reference the query row and use a command like...
foreach($myrow as $field=>$value)
and this would walk through each field in the row giving us the field name and its value.We need to do this same type of thing in our package.
I need to select a count of records where a field (call it widget) is the same, so i need all records where widgets are distinct. So it would be like asking for a distinct in a where clause. Not having much SQL experience this is a difficulty for me.
lets see .. so a count of records where widget = widget or something along those lines.
I am trying to execute an UPDATE from a field that may have more than row. I get ORA-01427: single-row subquery returns more than one row.
I need to set the careof column in owner table to hold the name (NAM) from the alt table if the alttype from alt is ATT. We could have more than one id and the careof names can be different.
This is my query:
UPDATE owner s SET s.careof = (SELECT a.NAM FROM alt a WHERE a.taxyr = '2011' AND a.alttype = 'ATT' AND a.card in ('0')
I have many different file names within my table and I want to remove the .TXT extension from each one. I want to try this SQL but being a newbie in Oracle, I don't know how to say "Left" characters. "Left" is an invalid identifier.
Update TableName Set File_Name = Left(File_Name, Len(File_Name)-4) Where File_Name LIKE '%.TXT'
I have tested it and it is working as the way I expected: select 'to display week no as column' "Week &week_no" from dual;
The output: Week 16 ---------------------------- to display week no as column ...So how do I display Week 15, Week 17 etc based on the calculation of &week_no e.g. &week_no+1?
I have time fields that have been converted from a 12hr clock to a 24hr clock and these fields hold only the time...no date.
I need to be able to determine the difference between column A and B eg.
Column A: Column B: 11:00 14:00
I can remove the ':' by using the replace command, but as I need to run on a actual 24hr clock I am not sure how to tackle the calculation as it is not the full oracle datetime format.
create table test_schema( col1 varchar2(50) ) insert all into test_schema values ('this_is_a_test') into test_schema values ('this_is_a_test_test') into test_schema values ('this_is_a_test_test_xxxx') into test_schema values ('this_is_a_test_test_aaaaaaaa') select * from dual;
I want to get the length of the col1 value with maximum length of characters also with that field value.
I'd like to select one of two fields from a table, based on which of them is greater for that row.
e.g. For every row in JOINING_TBL, I'd like to select either JOINING_DATE or REJOINING_DATE, whichever is greater. I do dream about being able to use a Java-like ternary operator in here, something like this:-
SELECT (JOINING_DATE>REJOINING_DATE?JOINING_DATE:REJOINING_DATE) FROM JOINING_TBL
However, I understand(through other fora) that this can't be used in here.
We have oracle 10 g and a table contains a clob field . The table size is getting increased day by day . We have decided to zip all the clob data inside the table except last 1 month records.
A column in a table contains the Numeric and Character. I Require the Numeric Value in that Column, if the Value is Character then null value is require to display.
I am trying to subtract the time from where status = Delivered from the status = Picked Up. All the data is in the same table. Let's call it table1 and I want to return the values: PTN, NAME and the time difference. Is this possible to do?
PTN NAME DATE STATUS 11014419 Joe Dickson 2012-06-25 14:55:58 Delivered 11014419 Mike Draia 2012-06-25 14:28:17 Loaded 11014419 Bob Geber 2012-06-25 13:14:31 Received 11014419 Bob Geber 2012-06-25 13:14:31 Picked Up 11014419 Bob Geber 2012-06-25 13:14:31 Printed
I have a problem to read in data from dmp file to target table.
I've created a dmp file using:
CREATE TABLE table_name ORGANIZATION EXTERNAL (TYPE oracle_datapump DEFAULT DIRECTORY directory_name LOCATION ('file_name.dmp') ) AS SELECT col1, col2, col3 from source_table;
[Code]...
The file created via db_link from target db to remote db and then the data are insterted into target db table target_table.
desc target_table col1 varchar2(20) col2 number col3 number
There are no values longer than 20 characters in source table, but when I insert into target_table(col1, col2, col3) as select col1, col2 col3 from source_table; I get ORA-12899: value too large for column "target_table"."col1" (actual: 25, maximum: 20).
I gues it has something to do with how the oracle datapump stored the data in dmp file. When I select col1 from source_table where length(col1) > 20; I get two values which clearly are not longer than 20 characters.
Selected values are:
748473358 693197674
where the bug is hidden or any "normal" workaround?
I am using Oracle 11.5.10 ebusiness suite.I have modified a custom report (an rdf) that it now picks up field xx for the address rather than POH_ SHIP_ ADDRESS_LINE1..I modified the template.rtf and uploaded it using the responsibility Oracle XML publisher. However instead of getting the field value in the report. I get XX (i.e. the field name not the field value). How can I ensure that the report picks up the value?