Workshop SQL->; Tables->; create the Lookup Table
It is perhaps a SQL issue rather than an issue of Apex, but...With my experience of amateur to create database tables, I usually start with a parent table and create children and link them.
While playing with Apex, I have the ability to create a Lookup Table of in any table.
And, what is created is a new table that is, indeed, a parent.
So I have been working from the bottom to the top.
I understand that correctly?
Thank you-
Marion
Marion...
Yes...
Lookup tables store data from reference and a link to your main table with a standard primary/foreign key relationship.
This feature is particularly useful if you are creating your tables of data in the worksheet and you want to standardize it.
Gus...
Tags: Database
Similar Questions
-
SQL in pl/sql and create the duplicate RMAN script.
Hello
I'm new to pl/sql and I am trying to write a script that will generate RMAN commands to make a clone of database.
I want to be able to run the script, and he invited me to the variables to be used in the script.
I did some research but I have been unable to find examples of how to proceed.
Basic script is (it would be obviously a lot more to the final script):
declare
dbname varchar2 (9): = & dbname;
BEGIN
DBMS_OUTPUT. ENABLE (2000);
DBMS_OUTPUT. Put_line (' DUPLICATE TARGET DATABASE to ' | dbname |) ';') ;
end;
/
Makes me:
Enter the value of dbname: ORCL4
old 3: dbname varchar2 (9): = & dbname;
new 3: dbname varchar2 (9): = ORCL4;
dbname varchar2 (9): = ORCL4;
*
ERROR at line 3:
ORA-06550: line 3, column 24:
PLS-00201: identifier 'ORCL4' must be declared.
ORA-06550: line 3, column 9:
PL/SQL: Ignored Element
ORA-06550: line 7, column 66:
PLS-00320: the declaration of the type of the expression is incomplete or incorrect
ORA-06550: line 7, column 9:
PL/SQL: Statement ignored
Thank you
Tom.Hi, Tom.
When SQL * more variable substitution resolves, it puts the string you gave as value (ORCL4 for example) instead of the string representing the name (& dbname, for example). East exaclty what you could do using the Replace function in a text editor: nothing more.
After SQL * more substituted for these channels, it send s the text changed the database to be compiled. So, where you coded:dbname varchar2(9) := &dbname;
is that it sends to compile
dbname varchar2(9) := ORCL4;
in other words, it looks like a variable on the side right of the: = sign.
You must provide quotes:
dbname varchar2(9) := '&dbname';
-
How to create the formula with the lookup table
Hi, I would like to convert formula in the below format of labview, no idea how this could be done more easy way?
I intend to use the node form, but I'm not sure how to use the table of choice within the formula not or is that even possible?
BR, Jani
Dim dblLookUp (-) As Double = New Double (3, 1) {{4, 4}, {10, 200}, {60, 3000}, {100, 7000}}
If dblAbsValue > = 0 and dblAbsValue<= dbllookup(0,="" 0)="">=>
USB = dblLookUp (0, 1) / dblLookUp (0, 0)
dblAbsValue = dblValue * USB
' lblMode.Text = 1
ElseIf dblAbsValue > dblLookUp (0, 0) and dblAbsValue<= dbllookup(1,="" 0)="">=>
USB = (dblLookUp (1, 1) dblLookUp (0, 1)) / ((1, 0) - dblLookUp dblLookUp (0, 0))
dblValue = USB * dblAbsValue - USB * dblLookUp (0, 0) + dblLookUp (0, 1)
' lblMode.Text = 2
ElseIf dblAbsValue > dblLookUp (1, 0) and dblAbsValue<= dbllookup(2,="" 0)="">=>
USB = (dblLookUp (2, 1) dblLookUp (1, 1)) / (dblLookUp (2, 0) - dblLookUp (1, 0))
dblValue = USB * dblAbsValue - USB * dblLookUp (1, 0) + dblLookUp (1, 1)
' lblMode.Text = 3
ElseIf dblAbsValue > dblLookUp (2, 0) and dblAbsValue<= dbllookup(3,="" 0)="">=>
USB = (dblLookUp (3, 1) dblLookUp (2, 1)) / (dblLookUp (3, 0) dblLookUp (2, 0))
dblValue = USB * dblAbsValue - USB * dblLookUp (2, 0) + dblLookUp (2, 1)
' lblMode.Text = 4
On the other
dblValue = dblLookUp (3, 1) ' * Math.Sign (dblValue)
' lblMode.Text = 5
End IfReturn dblValue * intSign
Hello janijt,
You can certainly use formula node for it. What you would do is to create a constant for the lookup table.
Here is an implementation in MathScript node
-
How to create a type of record and a pl/sql table of this record type in the database
Hello
I want to create a record type, and then I want to create a PL/SQL table in the oracle 9i database.
I did block PL/SQL.
But when I'm doing it in the database it throws me a few errors.
Could you please tell me how can I do?
Concerninguser576726 wrote:
Hello
I want to create a record type, and then I want to create a PL/SQL table in the oracle 9i database.
I did block PL/SQL.
But when I'm doing it in the database it throws me a few errors.
Could you please tell me how can I do?Concerning
RECORD type is only supported in PL/SQL for SQL, you must use the OBJECT type.
-
drop and re-create the table using dynamic sql
The following procedure should drop the table and re-create it. Currently, I get the dbms_output of the query. If I run the query only, it works well. but through the procedure, it does not work. Please help me
PROCEdure emp_backup is sql_txt varchar2(10000); begin begin EXECUTE IMMEDIATE 'drop table emp_backup ' ; exception when others then null; sql_txt:= 'CREATE TABLE emp_backup as ' || 'select * from emp '|| 'where dep_no=10 ' ; dbms_output.put_line(sql_txt); EXECUTE IMMEDIATE sql_txt; Exception when others then Null; End;
Daniel wrote:
I'm getting following error ORA-01031: insufficient privilegesWhat is the command to grant privileges to this
GRANT CREATE TABLE TO <
> Detaching Frank, however, and echoing my previous comment, let them down and to re-create the tables makes no sense. It is logical to truncate a table if you test a load. If you build a data warehouse, it makes sense to delete and re-create a partition if you rerun a load for a particular date and that you have daily partitions. Deletion and recreation of a table in a stored procedure is not a reasonable way to test a system (nor is there a reasonable way to approach change control issues that will inevitably produce when you need to change the structure of a table).
Justin
-
I am wanting to save a string of text in a sql database - lite which is called "message1." I press save button to call this code in my interlocutor.
URI myURI = URI.create("file:///SDCard/flash.db"); DatabaseFactory.open(myURI); Statement st = d.createStatement( "CREATE TABLE Restaurant (Experience TEXT)" ); Dialog.alert("Here1!"); st.prepare(); st.execute(); st.close(); Statement st1 = d.createStatement("INSERT INTO Restaurant(Experience) VALUES ('message1')"); st1.prepare(); st1.execute(); st1.close(); d.close(); Dialog.alert("Your info was saved!");
I can't even my Dialog statement to appear? I do something wrong in the line where I create the table?
Statement st = d.createStatement ('CREATE TABLE Restaurant (experience TEXT)');
Because when I move the dialog statement before this line... I can see the dialog box
Database db; URI myURI = URI.create("file:///SDCard/flash.db"); db = DatabaseFactory.open(myURI); Statement st= db.createStatement("CREATE TABLE 'Restaurant' ( " + "'Experience' TEXT)"); st.prepare(); st.execute(); st.close(); Statement st1 = db.createStatement("INSERT INTO Restaurant(Experience) VALUES ('Message1')"); st1.prepare(); st1.execute(); db.close();
I checked the code and its working very well.
----------------------------------------------------------
feel free to press the congratulations on the left side to thank the user who has helped you.
Please mark as resolved messages if you found a solution. -
Single SQL query for the analysis of the date of customs declaration under the table of Stock codes
Dear all,
Please tell us a single SQL query for the below,
We have a Table of Stock as shown below,
STOCK_TABLE
ITEM_CODE
(item code)
BAT_NO
(lot no.)
TXN_CODE
(transaction code)
DOC_NO
(number)
BOE_DT
(date of the customs declaration)
I1
B1
I1
I2
I3
B70
I4
B80
I5
B90
T102
1234
JULY 2, 2015
I6
B100
We have to find the date of customs declaration (i.e. the date when the items have come under this particular table) for items that are not attached to any document (that is, who have TXN_CODE, DOC_NO and BOE_DT fields with a NULL value).
For each item in the table of actions, which is not attached to any document, the customs declaration date is calculated as follows.
- If (code section, lot number) combination is present under HISTORY_TABLE, the date of customs declaration will receive the UPDT_DT, the transaction code (TXN_CODE) is an IN or transactions (which can be analyzed from the TRANSACTIONS table).
- If (code section, lot number) combination is NOT currently at the HISTORY_TABLE (or) the transaction code respective to item - batch number combination code is an operation then customs declaration date will be the date of the document (DOC_DT) that we receive from one of the 3 tables IN_TABLE_HEAD that contains the element of that particular lot.
- If the case 1 and case 2 fails, our customs declaration date will be the last date of document (DOC_DT) that we receive from one of the 3 tables IN_TABLE_HEAD containing that particular item and the BAT_NO in expected results will be that corresponding to this document, as appropriate, to another NULL.
- If the case 1 or case 2 is successful, the value of the last field (in the output expected, shown further below) BATCH_YN will be 'Y', because it fits the lot. Otherwise it will be 'n'.
-
DROP TABLE TWO.
DROP TABLE ONE;
CREATE TABLE 'A
(
ACTIVATE THE 'ID' NUMBER NOT NULL,
ACTIVATE THE "SERIAL" VARCHAR2 (10 BYTE) NOT NULL,
ACTIVATE THE "FIRST NAME" VARCHAR2 (30 BYTE) NOT NULL,
ENABLE 'PK_ONE' CONSTRAINT PRIMARY KEY ('ID', "SERIAL")
)
TABLESPACE 'USERS ';
CREATE TABLE "TWO"
(
ACTIVATE THE 'ID' NUMBER NOT NULL,
ACTIVATE THE "SERIAL" VARCHAR2 (5 BYTE) NOT NULL,
ACTIVATE THE "DEGREE_CODE" VARCHAR2 (10 BYTE) NOT NULL,
'TEST_NAME' VARCHAR2 (20 BYTE),
ACTIVATE THE KEY PRIMARY CONSTRAINT 'PK_TWO' ('ID', 'SERIAL'),
"FK_TWO' FOREIGN KEY ('ID', 'DEGREE_CODE') CONSTRAINT REFERS TO 'ONE' ('ID', 'SERIAL') MAYBE DEFERRED ENABLE
)
TABLESPACE 'USERS ';
If we use the above sql scripts to create the tables and create the ADF BC using the above 2 tables, all 4 columns in table 2 are reported as the primary key.
User, tell us your version of Jdev, please!
You should file an SR with support.oracle.com for this.
As a work around you can change the area of occurrence, and remove the check mark key pirmary on the unwanted columns. After that, it should work.
Timo
-
Syntax to create the view with 2 inline tables
Hello
If I run this SQL, I can compile a view without error:
CREATE OR REPLACE FORCE VIEW APPS.XX_TEST ( period_name , ytd ) AS with tbl_data AS ( SELECT '1314-03:OCT' period_name, -100 YTD FROM DUAL UNION ALL SELECT '1314-03:OCT' period_name, -1250 YTD FROM DUAL UNION ALL SELECT '1314-03:OCT' period_name, 10922 YTD FROM DUAL UNION ALL SELECT '1314-02:SEP' period_name, -100 YTD FROM DUAL UNION ALL SELECT '1314-01:AUG' period_name, 0 YTD FROM DUAL UNION ALL SELECT '1314-00:OBL' period_name, 0 YTD FROM DUAL UNION ALL SELECT '1213-14:CBL' period_name, -350 YTD FROM DUAL UNION ALL SELECT '1213-13:ADJ' period_name, -350 YTD FROM DUAL UNION ALL SELECT '1213-12:JUL' period_name, -100 YTD FROM DUAL ) SELECT period_name , ytd FROM tbl_data;
I need to create a view that includes the 2 tables inline (sorry if this is the incorrect terminology), using this SQL:
CREATE OR REPLACE FORCE VIEW APPS.XX_TEST2 ( period_name , ytd ) AS with tbl_data AS ( SELECT '1314-03:OCT' period_name, -100 YTD FROM DUAL UNION ALL SELECT '1314-03:OCT' period_name, -1250 YTD FROM DUAL UNION ALL SELECT '1314-03:OCT' period_name, 10922 YTD FROM DUAL UNION ALL SELECT '1314-02:SEP' period_name, -100 YTD FROM DUAL UNION ALL SELECT '1314-01:AUG' period_name, 0 YTD FROM DUAL UNION ALL SELECT '1314-00:OBL' period_name, 0 YTD FROM DUAL UNION ALL SELECT '1213-14:CBL' period_name, -350 YTD FROM DUAL UNION ALL SELECT '1213-13:ADJ' period_name, -350 YTD FROM DUAL UNION ALL SELECT '1213-12:JUL' period_name, -100 YTD FROM DUAL ), got_analytics AS ( SELECT period_name, ytd, ROW_NUMBER () OVER (ORDER BY period_name) AS a_num, ROW_NUMBER () OVER (ORDER BY period_name DESC) AS d_num, FIRST_VALUE (ytd) OVER (ORDER BY period_name) - FIRST_VALUE (ytd) OVER (ORDER BY period_name DESC) AS dif FROM tbl_data ) SELECT * FROM got_analytics;
I get this message:
ORA-24344: success with compilation error
There are no other errors but to provide additional information. I am using TOAD.
I was wondering if it is not possible to create a view in this way, or if I'm missing something?
I had a peek here:
ORA-24344: success with Compilation error
I'm using TOAD, trying to SHOW the ERRORS immediately after the code above only returned 'No Errors'.
I also looked here:
ORA-24344: success with compilation error
Ran the same code SQL/Plus, but "Show Errors" or "see the err" also returned "No. Errors."
Any advice would be much appreciated.
Thank you very much.
Hello
Try this
CREATE OR REPLACE FORCE VIEW APPS.XX_TEST2 ( period_name , ytd , a_num -- because you select * you need all rows , d_num , dif ) AS ...
concerning
Kay -
Problem when selecting a table after you have created the dblink
Hello
We have created the dblink for oracle to sql server and created successfully,
But while selecting the oracle table, we receive the question below,
Select * from 'sysdiagrams"@omniyat;
ERROR on line 1:
ORA-00942: table or view does not exist
[Microsoft] [ODBC SQL Server driver] [SQL Server] Incorrect object name
'sysdiagrams '. {42S 02, NativeErr = 208} [Microsoft] [ODBC SQL Server driver] [SQL
Server] instructions could not be prepared. {NativeErr 42000, 8180 =}
ORA-02063: preceding 2 lines of DAMAC
Please provide us with the solution for this problem.
Concerning
Sham
Hi S27.
We had the similar problem, and I guess you went to the database MSSQL and verified that the table exists in fact.
The problem we encountered was that we were in the wrong database on the instance of MSSQL. I am unsure of your Setup, but if this is your case, you can try either by setting the database default to the ODBC connection to the correct on the instance MSSQL database (can be done on Windows, I'm not sure about Linux), or you can USE the command through the :
SELECT DBMS_HS_PASSTHROUGH.EXECUTE_IMMEDIATE@<
> ('USE < >') FROM DUAL; You try your select statement from the DB link.
-
How to insert image from mysql into the table using php and create the checkbox in the table?
How can I insert image from mysql into the table using php and create the checkbox for each data as a vote? Here is my code...
WELCOME
If you have saved the file name in the database, it's pretty simple.
echo '';
Is the same for the box:
echo '';
If you have saved the image file in the database, it is much more complicated. I recommend you store only the file name in the database.
-
Could not commit: ORA-00928: lack of creating the table SELECT keyword
Hello guys.
I tried to create the table with web interface on oracle 11g.
I just follow this path on interface: schema-> table-> create-> standard (lot organized)-> SQl select on (set using the)->
and I just use these scripts to create the table:
CREATE TABLE suppliers
(the number (10) of supplier_id not null,)
supplier_name varchar2 (50) not null,
Contact_Name varchar2 (50)
);
but this error occurred: failed to commit: ORA-00928: lack of SELECT key word!
Please lock on this picture for more information: http://s17.postimg.org/kgoumzmvz/attachment.jpg
could you help me please?
and I could not find any manual for working with the web interface in oracle 11g.
Please give me somesources to start.
Thank you.1003778 wrote:
Thank you sybrand_b
but I already read this document.
Unfortunately, there is nothing on the creation of table with sql scripts in this document!and I really don't understand how to create table with SQL commands! My question has not yet been answered.
you please give me little details about it?
for example, how can create table using this sql command:CREATE TABLE suppliers
(the number (10) of supplier_id not null,)
supplier_name varchar2 (50) not null,
Contact_Name varchar2 (50)
);Thank you.
Edited by: 1003778 may 3, 2013 11:43
When you got to the CREATE TABLE screen, you have selected "set using the--> SQL.
Did you notice in the window that appears, just above this entry field is this text: "enter a SQL * select * statement below.» ' + This query results will be used to fill the table with Canada.* + "(underlining)
And hip, just to the left of this field is this text: «CREATE TABLE AS»He tries to build a ' CREATE TABLE AS SELECT... ». Creates a table with the same structure as the table in which you SELECT and fills with the results of this SELECT '. With your entry, you create a CREATE TABLE AS CREATE TABLE to read statement...
If you want to create your tables with a simple CREATE TABLE command, go to sqlplus and do it. You want to have a graphical interface to help build a simple CREATE table, when you get to the CREATE TABLE page, just to stay there with the default "use Define-> column specification." If you want, after completing "build" your table specification here, you will have a "Show sql" option to show you the actual sql statement that will be executed to create your table.
-
How to create the partition on a column in a table on a daily basis
Hi all
I wrote a query that does not, I have a column of varchar type, and I want to create the partition of the table on that column based daily interval. but ist is in error...
my query is...
create the table user_detail
(username varchar2 (50))
The user ID number,
country varchar2 (25).
accupation varchar2 (100),
company varchar2 (100),
joindate varchar2 (14))
partition by range (joindate)
INTERVAL (NUMTOYMINTERVAL (1, 'DAY'))
(PARTITION newone VALUES LESS THAN (to_date (April 13, 19 ', 'aa-mm-dd')));
error is:
Error from the 1 in the command line:
create the table user_detail
(username varchar2 (50))
The user ID number,
country varchar2 (25).
accupation varchar2 (100),
company varchar2 (100),
joindate varchar2 (14))
partition by range (joindate)
INTERVAL (NUMTOYMINTERVAL (1, 'DAY'))
(PARTITION newone VALUES LESS THAN (to_date (April 13, 19 ', 'aa-mm-dd')))
Error in the command line: 1 column: 0
Error report:
SQL error: ORA-14751: type of invalid data for the partitioning column of a partitioned table interval
Can I create partition on the varchar data type?On ORA11gR1 it works:
--virtual column CREATE TABLE TEST(joindate VARCHAR2(14), part_joindate AS (to_date(joindate,'dd.mm.yyyy'))) partition by range (part_joindate) INTERVAL(NUMTOYMINTERVAL(1, 'YEAR')) (PARTITION newone VALUES LESS THAN (to_date('2013-04-19', 'yyyy-mm-dd'))) ; INSERT INTO TEST(joindate) VALUES('19.04.2013'); SELECT * FROM TEST; DROP TABLE TEST; --aux column CREATE TABLE TEST(joindate VARCHAR2(14), part_joindate AS (to_date(joindate,'dd.mm.yyyy'))) partition by range (part_joindate) INTERVAL(NUMTOYMINTERVAL(1, 'YEAR')) (PARTITION newone VALUES LESS THAN (to_date('2013-04-19', 'yyyy-mm-dd'))) ; INSERT INTO TEST(joindate) VALUES('19.04.2013'); SELECT * FROM TEST; DROP TABLE TEST;
Published by: spajdy on April 19, 2013 14:58
-
Hello world
I hope someone here has access to these 2 items.
I need to the WF_COUNTRIES and WF_WORLD_REGIONS tables.
The SQL to create these may be all that's necessary and the easiest way to do it for me.
Explanation:
I try to make the class trip adventure since Oracle Academy in the APEX and finished project, but our schools APEX accounts were deleted, prematurely (says my instructor). I still have my Oracle Academy connection for the PL/SQL course (and I finished the last class), but never connected to this term to see even if the data WERE never there. I asked an APEX Oracle workspace and requested that they include the necessary data for the project, but he seems almost automated, because my application been approved quickly, and data were not included.
I need these 2 tables for the project, I need of graduates of this program (a class that I needed was not available, so I bought a substitution to do an additional project). I already wrote the Oracle Academy team but they have not yet responded, (2 days and I sent an e-mail Thursday evening/Friday morning).
This has already cost me days of work time and put things on hold, so if anyone has these tables, which would be more useful.
I don't know how to contact me here, perhaps, we can understand that, I'll check this forum.
Thank you very much!
ErichterHave you tried google? search for 'create a table WF_COUNTRIES' (including the quotation marks) returns only one, inside you will find create table statement for the named tables. Maybe they fit your needs.
-
Create the external data with dates table
I have a CSV file that looks a little like this:
abcuser,12345,5/12/2012,5,250.55
xyzuser, 67890, 5/1/2012,1,50
ghjuser, 52523, 1 January 00
When I create the external table, then question him, I get an error of date:
CREATE TABLE xtern_ipay
(
username VARCHAR2 (50).
acctNbr NUMBER 20 (0)
datelastused DATE,
number_rtxns NUMBER (12: 0).
amtused NUMBER (12: 0)
)
external organization (TYPE oracle_loader DEFAULT directory "XTERN_DATA_DIR"
(Settings) ACCESS
records delimited BY newline completed fields BY ',')
release location ("SubscriberStatistics.csv") limit) UNLIMITED;
The error I see in the newspaper of rejection:
For table XTERN_IPAY field definitions
Record format DELIMITED BY newline
Data in file have same "endianness" as platform
Rows with all null fields are accepted
Fields of the Data Source:
USERID CHAR (255)
Completed by «,»
Trim whitespace same as SQL Loader
ACCTNBR CHAR (255)
Completed by «,»
Trim whitespace same as SQL Loader
DATELASTUSED CHAR (255)
Completed by «,»
Trim whitespace same as SQL Loader
NUMBER_RTXNS CHAR (255)
Completed by «,»
Trim whitespace same as SQL Loader
AMTUSED CHAR (255)
Completed by «,»
Trim whitespace same as SQL Loader
column in treatment of DATELASTUSED error in the row 1 for the g:\externaltables\SubscriberStatistics.csv data file
ORA-01858: a non-digit character was found here where was waiting for a digital
column in treatment of DATELASTUSED error in line 2 to the g:\externaltables\SubscriberStatistics.csv data file
ORA-01858: a non-digit character was found here where was waiting for a digital
column in treatment of DATELASTUSED error on line 3 for the g:\externaltables\SubscriberStatistics.csv data file
ORA-01858: a non-digit character was found here where was waiting for a digital
Any ideas on that? I know I must tell oracle the date on the external file format, but I can't understand it.
HISTORY_TABLE
ITEM_CODE | BAT_NO |
TXN_CODE
DOC_NO
UPDT_DT
I1
B1
T1
1234
JANUARY 3, 2015
I1
B20
T20
4567
MARCH 3, 2015
I1
B30
T30
7890
FEBRUARY 5, 2015
I2
B40
T20
1234
JANUARY 1, 2015
TRANSACTION
TXN_CODE | TXN_TYPE |
T1 | IN |
T20 |
OFF
T30
ALL THE
T50
IN
T80
IN
T90
IN
T60
ALL THE
T70
ALL THE
T40
ALL THE
IN_TABLE_HEAD_1
H1_SYS_ID (primary key) | TXN_CODE | DOC_NO |
DOC_DATE
H1ID1
T1
1234
JANUARY 1, 2015
H1ID2
T70
1234
FEBRUARY 1, 2015
IN_TABLE_ITEM_1
I1_SYS_ID |
H1_SYS_ID
(foreign key referencing H1_SYS_ID in IN_TABLE_HEAD_1)
ITEM_CODE
I1ID1
H1ID1
I1
I1ID2
H1ID1
I100
I1ID3
H1ID2
I3
IN_TABLE_BATCH_1
B1_SYS_ID | TXN_CODE DOC_NO (now in IN_TABLE_HEAD_1) | BAT_NO |
B1ID1
T1
1234
B1 / can be empty
B1ID2
T70
1234
B70
IN_TABLE_HEAD_2
H2_SYS_ID (primary key) | TXN_CODE |
DOC_NO
DOC_DATE
H2ID1
T30
4567
FEBRUARY 3, 2015
H2ID2
T60
1234
JANUARY 3, 2015
IN_TABLE_ITEM_2
I2_SYS_ID | H2_SYS_ID (foreign key referencing H2_SYS_ID in IN_TABLE_HEAD_2) | ITEM_CODE |
I2ID1 | H2ID1 |
I1
I2ID2
H2ID1
I200
I2ID3
H2ID2
I2
IN_TABLE_BATCH_2
B2_SYS_ID |
I2_SYS_ID
(foreign key referencing I2_SYS_ID in IN_TABLE_ITEM_2)
BAT_NO
B2ID1
I2ID1
B30 / null
B2ID2
I2ID2
B90
B2ID2
I2ID3
B60
IN_TABLE_HEAD_3
H3_SYS_ID (primary key) | TXN_CODE | DOC_NO | DOC_DATE |
H3ID1 |
T50
1234
JANUARY 2, 2015
H3ID2
T80
1234
JANUARY 3, 2015
H3ID3
T90
1234
JANUARY 4, 2015
H3ID4
T40
1234
AUGUST 5, 2015
IN_TABLE_ITEM_3
I3_SYS_ID |
H3_SYS_ID
(foreign key referencing H3_SYS_ID in IN_TABLE_HEAD_3)
ITEM_CODE
BAT_NO
I3ID1
H31D1
I2
B50
I3ID2
H3ID2
I4
B40
I3ID3
H3ID3
I4
I3ID4
H3ID4
I6
There is no IN_TABLE_BATCH_3
Please find below the expected results.
OUTPUT
ITEM_CODE | BAT_NO | TXN_CODE | DOC_NO |
BOE_DT
BATCH_YN
I1
B1
T1
1234
JANUARY 3, 2015
THERE
I1
B30
T30
7890
FEBRUARY 5, 2015
N
I2
B60
T60
1234
JANUARY 3, 2015
N
I3
B70
T70
1234
FEBRUARY 1, 2015
THERE
I4
T90
1234
JANUARY 4, 2015
N
I6
T40
1234
AUGUST 5, 2015
N
Controls database to create the tables above and insert the records.
CREATE TABLE stock_table()item_code VARCHAR2()80),bat_no VARCHAR2()80),txn_code VARCHAR2()80),
doc_no VARCHAR2 (80), boe_dt DATE );
INSERT EN stock_table
VALUES ('I1', 'B1', '', '', '');
INSERT EN stock_table
VALUES ('I1', '', '', '', '');
INSERT IN stock_table
VALUES ('I2', '', '', '', '');
INSERT EN stock_table
VALUES ('I3', 'B70', '', '', '');
INSERT EN stock_table
VALUES ('I4', 'B80', '', '', '');
INSERT EN stock_table
VALUES ('I5', 'B90', 'T102', '1234', '02-JUL-2015');
INSERT EN stock_table
VALUES ('I6', 'B100', '', '', '');
SELECT *
FROM stock_table
CREATE TABLE history_table()item_code VARCHAR2()80),bat_no VARCHAR2()80),txn_code VARCHAR2()80),
doc_no VARCHAR2 (80), updt_dt DATE );
INSERT IN history_table
VALUES ('I1', 'B1', 'T1', '1234', '03-JAN-2015');
INSERT IN history_table
VALUES ('I1', 'B20', 'T20', '4567', '03-MAR-2015');
INSERT IN history_table
VALUES ('I1', 'B30', 'T30', '7890', '05-FEB-2015');
INSERT IN history_table
VALUES ('I2', 'B40', 'T20', '1234', '01-JAN-2015');
SELECT *
FROM history_table
CREATE TABLE transaction1()txn_code VARCHAR()80),txn_type VARCHAR()80));
INSERT INTO transaction1
VALUES ('T1', 'IN');
INSERT INTO transaction1
VALUES ('T20', 'OUT');
INSERT INTO transaction1
VALUES ('T30', 'ALL');
INSERT INTO transaction1
VALUES ('T40', 'ALL');
INSERT INTO transaction1
VALUES ('T50', 'IN');
INSERT INTO transaction1
VALUES ('T60', 'ALL');
INSERT INTO transaction1
VALUES ('T70', 'ALL');
INSERT INTO transaction1
VALUES ('T80', 'IN');
INSERT INTO transaction1
VALUES ('T90', 'IN');
SELECT *
FROM transaction1
CREATE TABLE in_table_head_1()h1_sys_id VARCHAR2()80) PRIMARY KEY,txn_code VARCHAR2()80),
doc_no VARCHAR2 (80), doc_dt DATE );
CREATE TABLE in_table_head_2()h2_sys_id VARCHAR2()80) PRIMARY KEY,txn_code VARCHAR2()80),
doc_no VARCHAR2 (80), doc_dt DATE );
CREATE TABLE in_table_head_3()h3_sys_id VARCHAR2()80) PRIMARY KEY,txn_code VARCHAR2()80),
doc_no VARCHAR2 (80), doc_dt DATE );
INSERT IN in_table_head_1
VALUES ('H1ID1', 'T1', '1234', '01-JAN-2015');
INSERT IN in_table_head_1
VALUES ('H1ID2', 'T70', '1234', '01-FEB-2015');
INSERT IN in_table_head_2
VALUES ('H2ID1', 'T30', '4567', '03-FEB-2015');
INSERT IN in_table_head_2
VALUES ('H2ID2', 'T60', '1234', '03-JAN-2015');
INSERT IN in_table_head_3
VALUES ('H3ID1', 'T50', '1234', '02-JAN-2015');
INSERT IN in_table_head_3
VALUES ('H3ID2', 'T80', '1234', '03-JAN-2015');
INSERT IN in_table_head_3
VALUES ('H3ID3', 'T90', '1234', '05-JAN-2015');
INSERT IN in_table_head_3
VALUES ('H3ID4', 'T40', '1234', '05-AUG-2015');
CREATE TABLE in_table_item_1()i1_sys_id VARCHAR2()80) PRIMARY KEY,
h1_sys_id VARCHAR2 (80) REFERENCES in_table_head_1()h1_sys_id),item_code VARCHAR2()80));
CREATE TABLE in_table_item_2()i2_sys_id VARCHAR2()80) PRIMARY KEY,
h2_sys_id VARCHAR2 (80) REFERENCES in_table_head_2()h2_sys_id),item_code VARCHAR2()80));
CREATE TABLE in_table_item_3(i3_sys_id VARCHAR2(80) PRIMARY KEY,
h3_sys_id VARCHAR2 (80) REFERENCES in_table_head_3()h3_sys_id),item_code VARCHAR2()80),
bat_no VARCHAR2 (80));
INSERT IN in_table_item_1
VALUES ('I1ID1', 'H1ID1', 'I1');
INSERT IN in_table_item_1
VALUES ('I1ID2', 'H1ID1', 'I100');
INSERT IN in_table_item_1
VALUES ('I1ID3', 'H1ID2', 'I3');
INSERT IN in_table_item_2
VALUES ('I2ID1', 'H2ID1', 'I1');
INSERT IN in_table_item_2
VALUES ('I2ID2', 'H2ID1', 'I200');
INSERT IN in_table_item_2
VALUES ('I2ID3', 'H2ID2', 'I2');
INSERT IN in_table_item_3
VALUES ('I3ID1', 'H3ID1', 'I2','B50');
INSERT IN in_table_item_3
VALUES ('I3ID2', 'H3ID2', 'I4','B40');
INSERT IN in_table_item_3
VALUES ('I3ID3', 'H3ID3', 'I4','');
INSERT IN in_table_item_3
VALUES ('I3ID4', 'H3ID4', 'I6','');
SELECT *
FROM in_table_item_1
SELECT *
FROM in_table_item_2
SELECT *
FROM in_table_item_3
CREATE TABLE in_table_batch_1()b1_sys_id VARCHAR2()80) PRIMARY KEY,
txn_code VARCHAR2 (80), doc_no VARCHAR2 (80), bat_no VARCHAR2 (80));
CREATE TABLE in_table_batch_2()b2_sys_id VARCHAR2()80) PRIMARY KEY,
i2_sys_id VARCHAR2 (80) REFERENCES in_table_item_2()i2_sys_id),bat_no VARCHAR2()80));
INSERT IN in_table_batch_1
VALUES ('B1ID1', 'T1', '1234', 'B1');
INSERT IN in_table_batch_1
VALUES ('B1ID2', 'T70', '1234', 'B70');
INSERT IN in_table_batch_2
VALUES ('B2ID1', 'I2ID1', 'B30');
INSERT IN in_table_batch_2
VALUES ('B2ID2', 'I2ID2', 'B90');
INSERT IN in_table_batch_2
VALUES ('B2ID3', 'I2ID3', 'B60');
Please advise a solution for the same.
Thank you and best regards,
Séverine Suresh
very forced (question subfactoring used to allow easy testing/verification - could work with these test data only)
with
case_1 as
(select s.item_code,
s.bat_no,
h.txn_code,
h.doc_no,
h.updt_dt boe_dt,
cases where s.bat_no = h.bat_no then 'Y' else ' n end batch_yn.
cases where h.txn_code is not null
and h.doc_no is not null
and h.updt_dt is not null
then 'case 1' '.
end refers_to
from (select item_code, bat_no, txn_code, doc_no, boe_dt
of w_stock_table
where bat_no is null
or txn_code is null
or doc_no is null
or boe_dt is null
) s
left outer join
w_history_table h
On s.item_code = h.item_code
and s.bat_no = h.bat_no
and exists (select null
of w_transaction1
where txn_code = nvl (s.txn_code, h.txn_code)
and txn_type in ('IN', 'ALL')
)
),
case_2 as
(select s.item_code,
NVL (s.bat_no, h.bat_no) bat_no.
NVL (s.txn_code, h.txn_code) txn_code.
NVL (s.doc_no, h.doc_no) doc_no.
NVL (s.boe_dt, h.updt_dt) updt_dt.
cases where s.bat_no = h.bat_no then 'Y' else ' n end batch_yn.
cases where h.txn_code is not null
and h.doc_no is not null
and h.updt_dt is not null
then 'case 2'.
end refers_to
from (select item_code, bat_no, txn_code, doc_no, boe_dt
of case_1
where refers_to is null
) s
left outer join
w_history_table h
On s.item_code = h.item_code
and exists (select null
of w_transaction1
where txn_code = nvl (s.txn_code, h.txn_code)
and txn_type in ('IN', 'ALL')
)
and not exists (select null
of case_1
where item_code = h.item_code
and bat_no = h.bat_no
and txn_code = h.txn_code
and doc_no = h.doc_no
and updt_dt = h.updt_dt
)
),
case_31 as
(select s1.item_code,
NVL (S1.bat_no, W1.bat_no) bat_no.
NVL (S1.txn_code, W1.txn_code) txn_code.
NVL (S1.doc_no, W1.doc_no) doc_no.
NVL (S1.updt_dt, W1.doc_dt) updt_dt.
cases where s1.bat_no = w1.bat_no then 'Y' else ' n end batch_yn.
cases where w1.txn_code is not null
and w1.doc_no is not null
and w1.doc_dt is not null
then "case 31'.
end refers_to
from (select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn, refers_to
of case_2
where refers_to is null
) s1
left outer join
(select i1.item_code, h1.txn_code, h1.doc_no, h1.doc_dt, b1.bat_no
of w_in_table_item_1 i1
inner join
w_in_table_head_1 h1
On i1.h1_sys_id = h1.h1_sys_id
inner join
w_in_table_batch_1 b1
On h1.txn_code = b1.txn_code
and h1.doc_no = b1.doc_no
) w1
On s1.item_code = w1.item_code
),
case_32 as
(select s2.item_code,
NVL (S2.bat_no, W2.bat_no) bat_no.
NVL (S2.txn_code, W2.txn_code) txn_code.
NVL (S2.doc_no, W2.doc_no) doc_no.
NVL (S2.updt_dt, W2.doc_dt) updt_dt.
cases where s2.bat_no = w2.bat_no then 'Y' else ' n end batch_yn.
cases where w2.txn_code is not null
and w2.doc_no is not null
and w2.doc_dt is not null
then "case 32'.
end refers_to
from (select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn, refers_to
of case_2
where refers_to is null
) s2
left outer join
(select i2.item_code, h2.txn_code, h2.doc_no, h2.doc_dt, b2.bat_no
of w_in_table_item_2 i2
inner join
w_in_table_head_2 h2
On i2.h2_sys_id = h2.h2_sys_id
inner join
w_in_table_batch_2 b2
On i2.i2_sys_id = b2.i2_sys_id
) w2
On s2.item_code = w2.item_code
),
case_33 as
(select s3.item_code,
w3.bat_no,
NVL (S3.txn_code, w3.txn_code) txn_code.
NVL (S3.doc_no, w3.doc_no) doc_no.
NVL (S3.updt_dt, w3.doc_dt) updt_dt.
cases where s3.bat_no = w3.bat_no then 'Y' else ' n end batch_yn.
cases where w3.txn_code is not null
and w3.doc_no is not null
and w3.doc_dt is not null
then "case 33'.
end refers_to
from (select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn, refers_to
of case_2
where refers_to is null
) s3
left outer join
(select i3.item_code, h3.txn_code, h3.doc_no, h3.doc_dt, i3.bat_no
of w_in_table_item_3 i3
inner join
w_in_table_head_3 h3
On i3.h3_sys_id = h3.h3_sys_id
) w3
On s3.item_code = w3.item_code
)
Select item_code, bat_no, txn_code, doc_no, boe_dt, batch_yn
of case_1
where refers_to is not null
Union of all the
Select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn
of case_2
where refers_to is not null
Union of all the
Select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn
from (select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn,
ROW_NUMBER() over (partition by item_code of updt_dt desc order) rn
from (select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn
of case_31
where refers_to is not null
Union of all the
Select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn
of case_32
where refers_to is not null
Union of all the
Select item_code, bat_no, txn_code, doc_no, updt_dt, batch_yn
of case_33
where refers_to is not null
)
)
where rn = 1
ITEM_CODE | BAT_NO | TXN_CODE | DOC_NO | BOE_DT | BATCH_YN |
---|---|---|---|---|---|
I1 | B1 | T1 | 1234 | JANUARY 3, 2015 | THERE |
I1 | B30 | T30 | 7890 | FEBRUARY 5, 2015 | N |
I2 | B60 | T60 | 1234 | JANUARY 3, 2015 | N |
I3 | B70 | T70 | 1234 | FEBRUARY 1, 2015 | THERE |
I4 | - | T90 | 1234 | JANUARY 5, 2015 | N |
I6 | - | T40 | 1234 | AUGUST 5, 2015 | N |
Concerning
Etbin
Maybe you are looking for
-
mail crashing el capitan 10.11.4
Apple Mail crashes 10 times per day without help or updates. I resorted to using google mail that works very well. I read the support and made some "fixes" such as the removal of the file of mail and reconstruction. Did this and it crashed an hour
-
I use Mail and El Capitan (10.11.4). Among the many pieces of junk mail that happened today that I have marked as spam and moved to the junk e-mail folder that emptied. There is one that continues to be included in the list in my Inbox and the junk e
-
Why is my screen on its side?
I accidentally hit a few buttons, and now my screen is on its side, can someone please tell me how to do normal again?
-
NEED to PSWRD MT BACK FOR WINDOWS
Recently, I went in parental and added security a pswrd - didn't know it would affect me singning in windows (which I've never had to do before) I'm cooked, because I don't remember the pswrd - windows password recovery uses and will have a bit of a
-
I use a USB Modem application provided by the seller, called "3 G - Connect.exe", to access internet on my desktop. As soon as I connect to Windows, as usual, when I drag any window to its title bar mouse pointer of the it shows content of the window