Query for object counts
Oracle 11.2.0.1I have to generate a count of all types of objects below style.
USERNAME TABLES INDEXES MVS PROCEDURES FUNCTIONS CLUSTER
USER1 10 5 1 20 5
USER2 2
USER3 10
TOTAL 10 5 3 20 5 10
Here the object count should correspond with the sum of the column total i.e. 10 + 5 + 3 + 20 + 5 + 10.Kindly help me, how to generate above exit.
Thank you.
SET FEEDBACK OFF
SET PAGESIZE 0
spool c:\dynamic_pivot_subscript.sql
SELECT DISTINCT
', COUNT (CASE WHEN object_type = '''
|| object_type
|| ''' ' AS txt1
, 'THEN 1 END) AS "'
|| object_type
|| '_CNT"' AS txt2
FROM all_objects
ORDER BY txt1;
SPOOL OFF;
I opened c:\dynamic_pivot_subscript.sql and removed first and last lines.
break on report
select 'compute sum of "' || object_type || '_CNT" on report'
from all_objects
group by object_type
/
I just executed above lines which I got as query output.
SET LINE 1000;
compute sum of "TOTAL" on report
COLUMN OWNER FOR A20;
SET FEEDBACK ON
SET PAGESIZE 50
spool c:\dynamic_pivot.lst
SELECT OWNER
@@c:\dynamic_pivot_subscript.sql
,COUNT(*) "TOTAL"
FROM ALL_OBJECTS
GROUP BY OWNER
ORDER BY OWNER
/
Crusader dynamic source: Frank @ Re: County report and the sum of the number of lines in the number of columns
Concerning
Girish Sharma
Tags: Database
Similar Questions
-
Need to query for check missing synonyms
A query need to check in a schema
The synonyms created for the table - name of the table and their number (if any missing names synonyms)
Named for objects procedures - synonyms name and their number (if there are missing names synonyms)
Synonyms named name of sequences and their number (if there are missing their names synonyms)
How can I design it.
Hello
Think about synonyms on all. You have less troubles to keep that way. Start using qualified names on objects that are in a different schema and if possible just run alter session set current_schema = this scheme;
If you need to use synonyms for everything and check them as you said, use SQL to views of the dictionary to get the differences.
Lack of synonyms for example report:
select dba_tables.owner, dba_tables.table_name, dba_synonyms.owner, nvl(dba_synonyms.synonym_name, 'this synonym was never here or lost in maintenance') synonym_name from dba_tables left join dba_synonyms on (dba_tables.table_name = dba_synonyms.table_name) where dba_tables.owner = upper('&owner') -- and dba_synonyms.table_name is null ;
Note! This script illustrates SQL dict views. It isn't a perfect solution and valid for your application.
See http://docs.oracle.com/cd/B28359_01/server.111/b28318/datadict.htm#CNCPT002
-
Dynamic problem with lookup-query for the purpose of resource request
Hi all
I need to set up several IOM user exchange mailboxes, I can set up AD account and account of the mailbox without any problem, but only for the first ad and Exchange account. For the second and third, etc. I get the error: "Invalid login name" during Exchange of account provisioning. I discovered that this problem exists with Exchange Connector - it is not able to collect correct GUID. So in my xml Dataset I use dynamic query Lookup to select manually correct Alias, the login name and GUID. The query for the GUID is the sequel (I cloned RO for AD and Exchnage):
AttributeReference available-in-bulk = "true" length = "32" widget = 'search query' type = 'String' attr-ref = "Object GUID" name = "Object GUID" >
* < lookupQuery search-query = "select distinct UD_KFUSER_OBJECTGUID GUID, ud_KFUSER_uid like UD_KFUSER UD_KFUSER, orc orc Login, sta sta where UD_KFUSER.orc_key = orc.orc_key and orc.usr_key = ' $Form data." Take ' and UD_KFUSER. "UD_KFUSER_AD = 27 and orc.orc_status = STA.sta_status AND STA.sta_bucket! = 'Cancelled'" display-field = "GUID" save-field = "Object GUID" / > *.
* < / AttributeReference > *.
My questions are:
1. I have to type * to run the query in the user interface, without * I got error:
+ < 17 February 2012 11:12:22 THIS > < error > < oracle.adfinternal.view.faces.config.ric +.
h.RegistrationConfigurator > < BEA-000000 > < ADF_FACES - 60096:Server Exception durin
PPR, #10 g
oracle.iam.platform.canonic.base.NoteException: an error occurred during executin
g the search query.
to oracle.iam.platform.canonic.agentry.GenericEntityLookupActor.perform)
GenericEntityLookupActor.java:337)
Is this right?
2. when I got correct values (from the search query) - they are missing on the details of the application and form of RO - what Miss me?
I use OIM 11.1.1.5, in my xml dataset I use correct attr-Ref (labels), when I type the values manually, they are propagated to form RO and Exchange mailbox is created.
Best
MPI not had no problem when writing search query.
This works very well for me.
The request will be filled for the field, so why choose *?
I used as
-
How to query the object attribute changed his mind in another display object
JDeveloper 10.1.3.4
My requirement is I want to be able to query an object (entity based) view on a nonkey attribute where the value I'm looking on can either be in the database on an existing record or only been experienced by updating a different point of view object based on the same entity (and still commit).
When you query the second display of a value object just updated via a different point of view object, the second view object always returns no rows. I thought that the process is:
EntityA
ViewObjectA based on EntityA
ViewObjectB based on EntityA
ViewObjectA - line query with the key = 123. update the attribute Y with value 456 (attribute Y in the null database). Feature for EntityA cache, touch 123, attribute is updated with the value 456
ViewObjectB - line application with attribute = y. wait record in EntityA just updated cache to be returned. Instead, nothing is returned
Here is the code I was using (where RandScheduleEdit and RandScheduleSearch are the same view the entity RandSchedule object-based objects)
Why not rsSearch finds the S_ID = 7827 record? It seems to only be interviewing new records in the database and ignoring the record updated in cache just updated?public static void main(String[] args) { String amDef = "test.cache.model.AppModule"; String config = "AppModuleLocal"; ApplicationModule am = Configuration.createRootApplicationModule(amDef,config); ViewObject rsEdit = am.findViewObject("RandScheduleEdit"); Key rsKey = new Key(new Object[]{40}); Row[] rsEditRows = rsEdit.findByKey(rsKey,1); Row rsEditRow = rsEditRows[0]; rsEditRow.setAttribute("SId", new Number(7827)); ViewObject rsSearch = am.findViewObject("RandScheduleSearch"); rsSearch.setWhereClause("S_ID = :SId"); rsSearch.defineNamedWhereClauseParam("SId", null, null); rsSearch.setNamedWhereClauseParam("SId",new Number(7827)); rsSearch.executeQuery(); Row rsSearchRow = rsSearch.first(); Configuration.releaseRootApplicationModule(am, true); }
Any help much appreciated.
See you soon,.
BrentrsSearch.setNamedWhereClauseParam ("SId", new Number (7827));
This might help:
rsSearch.setQueryMode (ViewObject.QUERY_MODE_SCAN_ENTITY_ROWS);rsSearch.executeQuery ();
-
The pending request for objects...
Hello
I have a Pl/Sql query that when run takes a long time to run.
When I put a trace on this subject, I found he's waiting for 2 items and as soon as the wait is over the product query the result immediately.
I tried puuting indexes on tables that had large files as I thought initially that he may have to wait because of full table scan, but it's not a great help.
Earlier this query used to run within 5 minutes about 3 months back, but now it takes about an hour per day and when tracing is enabled, it shows again that it must wait for 2 objects.
What im thinking is that earlier when the query used to run within 5 minutes the data in question was not so heavy, but since the last 2 months, the data are in millions of dollars each month.
Could you suggest me a possible solution to this problem of waiting for objects.
Thank you.
Database version being used - Oracle 10 gHello
When I put a trace on this subject, I found he's waiting for 2 items and as soon as the wait is over the product query the result immediately.
"he's waiting for 2 objects? What do you mean exactly by that?
If you did a trace so why don't you post the tkprof output?
Thanks for posting the tkprof (including waiting events) result and your PL/SQL procedure (or a representative piece of code examples)Put this tag =>
before and after your tkprof output/code examples, so it says readable.
-
Original title: Hi Experts,
Hi Experts,
Pls help me...When I tried to restore the backup of one of my site in my server, I got error like "cannot allocate space for object database because the 'primary' filegroup is full"... Microsoft SQL-DMO(ODBC SQL State:42000))Hello
The question you have posted is related to professional level support. Please visit the link below to find a community that will support what ask you:
http://social.technet.Microsoft.com/forums/en-us/category/SQLServer/
-
Name of the table to query for the time window of work
I am trying to build a query for a list of jobs in tide. Anyone know what table is for the time window? Please notify. Thank you.
Hi Warren, according to me, this is the jobdtl table.
jobdtl_fromtm and jobdtl_untiltm
-
An error occurred when querying for the pending operations
Original title: sysprep problem
I have an acer aspire 5738Z, I use windows 7 (64 bit) I try to open sysprep.exe and it does not open, a text box appears saying "an error occurred when querying for the pending operations. What can I do to fix this?Hello
Thanks for posting the request in the Microsoft community forums.
I understand that you receive the error "an error has occurred when querying for outstanding operations" when trying to open sysprep.exe on the computer.You can try the solutions provide and check if it helps solve the issue.
Method 1:
You can scan System File Checker to fix corrupted files.
How to use the System File Checker tool to fix the system files missing or corrupted on Windows Vista or Windows 7
http://support.Microsoft.com/kb/929833Method 2:
If the steps above fail then you can try the steps and check.a. run regedit by typing regedit in start search by pressing ENTER.
b navigate to the following key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
Key: RegistrySizeLimit
Type: REG_DWORD
Value: 0xffffff (4294967295)
c. reset.If you need help with Windows, keep us informed. We will be happy to help you.
-
FRM - 40603:Records is no longer reserved for the update. Query for changes
Hi I have a form that has been developing 6i and upgraded to 11g form work well in 6i, but when I try to do the same function in 11g get this error
FRM - 40603:Records is no longer reserved for the update. Query for changes
When I commit this execute_query (for_update); It is the form to clear values when it loads, the error comes when I try to deleteHow can I do this
Action: If you want to change the block, you will need to re - interview.
I use When-Timer-Expired (WTE) trigger
You have a 'relationship' defined between the blocks of your master and detail? If so, simply update your master block and the block of details will automatically be re-interviewed. If you cannot use a relationship, then you can use can create a timer in the trigger that updates the database, then in the trigger When-Timer-Expired (WTE) you can go to the retail block and run a query. For example: / * the sample on change trigger * /.
DECLARE timer_id TIMER; BEGIN ....your code here that performs the update.... /* Now create an instance of a timer */ timer_id := Create_Timer ('upd_detail',1,NO_REPEAT); END;/* Sample Form Level When-Timer-Expired trigger */ DECLARE timer_id TIMER; BEGIN -- Find the timer first timer_id := FIND_TIMER('upd_detail'); IF NOT ID_NULL(timer_id) THEN GO_BLOCK('DETAIL_BLOCK'); Execute_Query; END IF; END;
-
Cannot deploy the planning application. I get the following message.
Detail: An error has occurred during execution of the export demand: could not allocate space for object ' dbo. DS_Property_Member_Array'. 'IdxPropMbrArr04' to database 'EPMA' because the 'PRIMARY' filegroup is full. Create disk space by deleting unnecessary files, removing objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on it to the existing files in the file group.
No idea where I need to check the space I checked my essbase server and workspace and they both seem to have enough space for a normal deployment.
It's a question on the SQL Server database with the allocation of space, searching the Internet for something like "Create disk space by deleting unnecessary files, removing objects in the filegroup" and you should get a lot of results.
For example - the primary filegroup is full SQL Server 2008 - database to stack Exchange administrators
See you soon
John
-
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'.
-
A design of query for the conversion of time difference in days, hours, Minutes
Hi all
A design of query for the conversion of time difference of time in number of days remaining remaining hours minutes and rest in seconds. Made this one till now. Please suggest for all modifications, until now, it seems to work very well, kindly highlight for any anomaly.
WITH DATA (startDAte, EndDate, Datediff) AS (SELECT to_date ('2015-10-01 10:00:59 ',' yyyy-mm-dd hh24:mi:ss'), to_date ('2015-20-01 03:00:49 ',' yyyy-mm-dd hh24:mi:ss'), to_date('2015-10-01 10:00','yyyy-dd-mm hh24:mi:ss')-to_date('2015-20-01 03:00','yyyy-dd-mm hh24:mi:ss') FROM dual)
UNION ALL SELECT to_date ('2015-10-01 10:00:39 ',' yyyy-mm-dd hh24:mi:ss'), to_date ('2015-20-01 03:00:40 ',' yyyy-mm-dd hh24:mi:ss'), to_date('2015-10-01 10:00','yyyy-dd-mm hh24:mi:ss')-to_date('2015-20-01 03:00','yyyy-dd-mm hh24:mi:ss') FROM dual
UNION ALL SELECT to_date ('2015-11-01 10:30:45 ',' yyyy-mm-dd hh24:mi:ss'), to_date ('2015-11-01 11:00:50 ',' yyyy-mm-dd hh24:mi:ss'), to_date('2015-11-01 10:30','yyyy-dd-mm hh24:mi:ss')-to_date ('2015-11-01 11:00 ',' yyyy-mm-dd hh24:mi:ss') FROM dual
UNION ALL SELECT to_date ('2015-11-01 09:00:50 ',' yyyy-mm-dd hh24:mi:ss'), to_date ('2015-11-01 10:00:59 ',' yyyy-mm-dd hh24:mi:ss'), to_date('2015-11-01 09:00','yyyy-dd-mm hh24:mi:ss')-to_date ('2015-11-01 10:00 ',' yyyy-mm-dd hh24:mi:ss') FROM dual
UNION ALL SELECT to_date ('2015-11-01 08:30:49 ',' yyyy-mm-dd hh24:mi:ss'), to_date ('2015-11-01 09:30:59 ',' yyyy-mm-dd hh24:mi:ss'), to_date('2015-11-01 08:30','yyyy-dd-mm hh24:mi:ss')-to_date('2015-11-01 09:30','yyyy-dd-mm hh24:mi:ss') FROM dual
)
Select
trunc ((EndDate-StartDate)) days.
trunc (((enddate-startdate)-to_number (trunc ((enddate-startdate))) * 24) hours)
trunc (to_number (((enddate-startdate)-to_number (trunc ((enddate-startdate))) * 24-trunc (((enddate-startdate)-to_number (trunc ((enddate-startdate))) * 24)) * 60) Minutes,))
(to_number (((enddate-startdate)-to_number (trunc ((enddate-startdate))) * 24-trunc (((enddate-startdate)-to_number (trunc ((enddate-startdate))) * 24)) * 60 - trunc (to_number (((enddate-startdate)-to_number (trunc ((enddate-startdate))) * 24-trunc (((enddate-startdate)-to_number (trunc ((enddate-startdate))) * 24)) * 60)) * 60 seconds))))
data;
Thanks for the answers in advance.
AHA!
TO_TIMESTAMP expects a string as input, so it first makes an implicit conversion from DATE to a string, in the format of NSL_DATE_FORMAT.
To convert the TIMESTAMP DATE independently NLS_DATE_FORMAT, use
CAST (
AS TIMESTAMP) -
SQL query for employees, based on a hierarchy of Org
Hi all
I need a query for employee information based on the hierarchy of the Org.
I tried using previous queries in this forum and on the internet, but not closer to.
Here's the requirement:
Level1 Level 2 Level 3 Org Id 81 102 103 104 111 (parent 104) 112 (parent 104) 105 My requirement is to group employees based on level 2, which should include level 3 employees in the respective level2 parent id.
Please suggest.
Query to get hierarchy: SELECT LPAD(' ',10*(LEVEL-1)) || org.name hierarchy,ose.organization_id_parent, org.organization_id FROM hr_all_organization_units org, per_org_structure_elements ose WHERE 1=1 AND org.organization_id = ose.organization_id_child AND ose.org_structure_version_id = 61 --and org.organization_id = 340 START WITH ose.organization_id_parent = 81 CONNECT BY PRIOR ose.organization_id_child = ose.organization_id_parent ORDER SIBLINGS BY org.location_id, ose.organization_id_child Required Columns: SELECT haou.name, papf.EMPLOYEE_NUMBER, papf.full_name FROM per_org_structure_elements ose ,hr_all_organization_units haou ,per_all_assignments_f paaf ,per_all_people_f papf WHERE ose.ORGANIZATION_ID_PARENT = 81 AND ose.ORG_STRUCTURE_VERSION_ID = 61 AND haou.organization_id = ose.organization_id_child --and paaf.organization_id = ose.organization_id_child and papf.person_id = paaf.person_id and paaf.organization_id = haou.organization_id and :P_GIVEN_DATE between papf.effective_start_date and papf.effective_end_date and :P_GIVEN_DATE between paaf.effective_start_date and paaf.effective_end_date
Thank you and best regards,
Afzal.
with
hr_all_organization_units as
(select 81 organization_id, ' name 81', 'loc_1' any double union location_id
Select 102, 'name 102', 'loc_1' from dual union all
Select 103, 'naming 103', 'loc_10' from dual union all.
Select 104, '104 name', 'loc_5' from dual union all
105, select 'name 105', 'loc_3' from dual union all
Select 111, '111 name', 'loc_5' from dual union all
112, select 'name 112', 'loc_7' from dual
),
per_org_structure_elements as
(select org_structure_version_id 61, organization_id_parent 81, 102 organization_id_child of all the double union)
Select 61,81,103 from all the double union
Select 61,81,104 from all the double union
Select 61,81,105 from all the double union
Select 61,104,111 from all the double union
Select double 61,104,112
),
employees as
(select 1 emp_id, name 'emp_1', org_id 111 Union double all the)
Select 2, 'emp_2', 112 double Union all
Select 3, 'emp_3', 112 double Union all
Select option 4, 'emp_4', 111 double Union all
Select 5, 'emp_5', 105 double Union all
Select 6, 'emp_6', 104 double Union all
Select 7, "emp_7", 103 double Union all
Select 8, 'emp_8', 102 double Union all
Select 9, 'emp_9', 81 of the double
)
Select e.name, e.emp_id, o.level_2
e employees
left outer join
(select org.organization_id,regexp_substr(sys_connect_by_path(org.organization_id,'/'). ' / ',' ^ / (\d+)',1,1,'i',1) level_2
of hr_all_organization_units org,.
per_org_structure_elements dare
where ose.org_structure_version_id = 61
and ose.organization_id_child = org.organization_id
Start with ose.organization_id_parent = 81
Connect prior ose.organization_id_child = ose.organization_id_parent
) o
on e.org_id = o.organization_id
order by emp_id
EMP_ID NAME LEVEL_2 1 emp_1 104 2 emp_2 104 3 emp_3 104 4 emp_4 104 5 emp_5 105 6 emp_6 104 7 emp_7 103 8 emp_8 102 9 emp_9 - Concerning
Etbin
-
What will happen to the SQL Query based object View (EmployeesVO)
Schema used: HR
- I created a view through SQL Query view object object (Table Employees - EmployeesVO).
- Creates an entity of the Employees (EmployeesEO) table object.
- In the section EmployeesVO (View object) entity objects, I chose EmployeesEO (entity object).
What will happen to the View SQL Query object based on (EmployeesVO) will it change to VO based on entities or still to be based query VO.
It is there because you can still base your query based Vo EO according to Vo.
After that you base your VO on EO you can now use 'Add the attribute of the entity' to base your attribute on the atrributes of EO. Or if you skilled enough you can manually change the XML to VO
-
problem with bind variables in the SQL query view object
Hi all
I use JDev 11.1.2.4.0.
I have a problem with bind variables in the SQL query view object.
This is my original SQL
SELECT sum(t.TIME) , t.legertype_id FROM LEDGER t WHERE t.nctuser_id = '20022' AND to_char(t.insertdate,'YYYYMMDD') in ('20130930','20130929') group by t.legertype_id
In my view .xml object query tab, I am writing this
SELECT sum(t.TIME) , t.legertype_id FROM LEDGER t WHERE t.nctuser_id = '20022' AND to_char(t.insertdate,'YYYYMMDD') in :dddd group by t.legertype_id
Davis here is a variable of Type liaison: String, updatable and necessary.
I try to deal with Davis as ('20130930 ', ' 20130929') hoping the view object, run as my original SQL.
But failed. The view object retrieves 0 line after that I run.
Why?
Thank you! ('2original SQL0130930', '20130929') ('20130930 ', ' 20130929')
A variable binding cannot be used as this is why you must use years table. Check decompilation binary ADF: using oracle.jbo.domain.Array with ViewCriteria to see a solution.
Timo
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
-
Problem installing G510n - "open cartridge access door.
I want to install a printer/copier/fax g510n - just installed the ink cartridges and still receive the error message 'cartridge access door open - closed door acess cartridge' even if I closed the door. I can't continue the installation. Suggestions
-
I can't install Itunes. I get the SAME ERROR
I can't install Itunes. I get the following message is displayed: an error occurred during the installation of assembly ' microsoft. VC80. CRT, version = "8.05727.4053", type = "win32", publickeyToken = "1fc8b3b9ale18e3b","processorArchitecture ="x 8
-
Original title: wireless network card problem I have a laptop HP g series. I am not able to connect to Wi - Fi. The network symbol that appears at the bottom right does not appear. Solve the problem. He said it was a problem with the driver for the w
-
Another issue of display language
I installed Windows 7 Pro to a user here at work. Apparenetly, during the installation, I chose English Zimbabwe as the display language (note that this is not the English language chosen when Windows 7 is still configure itself - Zimbabwe isn't even
-
How can I increase it to 2 GB to 100 GB?