Help with the query to create hourly statistics
Hello!
I have an array of jobs. Each task has a start_date and a column end_date. end_date can be null if the job is still running.
I need to create a query to display the number of jobs running for all hours during the last two weeks.
A job can run for more than an hour.
I tried to define what it means for a job during an interval:
Job.Start_date < = Interval.end AND Job.Finish_date > = Interval.start
Can help you with this query?
Thank you!
Mihai
Hi, Mihai,
User810719-Oracle wrote:
Hello!
I have an array of jobs. Each task has a start_date and a column end_date. end_date can be null if the job is still running.
I need to create a query to display the number of jobs running for all hours during the last two weeks.
A job can run for more than an hour.
I tried to define what it means for a job during an interval:
Job.Start_date <= interval.end="" and="" job.finish_date="">= Interval.start...
=>
You gave essentially the solution yourself. You just need to outside join your jobs table to a table (or, in the example below, a result set that acts like a table) containing 1 row for each interval. You can use NVL to equate finish_dates with an effective DATE NULL, so they will be counted:
WITH intervals AS
(
SELECT TRUNC (SYSDATE, 'HH') - ((LEVEL-1)/24) AS interval_start
, TRUNC (SYSDATE, 'HH') - ((LEVEL-2)/24) AS interval_end
OF the double
CONNECT BY LEVEL<= 14="" *="">=>
)
SELECT i.interval_start
EARL of (j.start_date) AS jobs_running
Intervals I have
LEFT OUTER JOIN jobs j WE j.start_date<=>=>
AND NVL (j.finish_date
i.interval_end
) > = i.interval_start
;
If you would care to post a small example of data (CREATE TABLE and INSERT statements) and the results desired from this data, I was able to test this.
Simplify the problem for display. Do what you are interested only for the past 6 hours, not the last 2 weeks. We will find a solution that can easily adapt to any number or intervals.
Tags: Database
Similar Questions
-
Help with the query to select only one record from the result set in double
Hello
Please help with the query. Version of Oracle database we use is 10g R2.
I have a vision that is duplicated IDS, but they are used across the different functions. See below examples of data. Please help me with a query to select only one record (based on ID regardless of the area) from the bottom of the result set of duplicate records. For what is the point of view is there unique records, given the combination of the fields ID, Org, DF, dry, Sub-Sec
ID Org DF Sec Sub-Sec (163) CQ CPDM CPDM HD (163) PC ENG ENG ENG (163) CQ ASIC ASIC IS 8888 TS TAC TAC TAC (163) TS HE HE SW 6789 CQ INFO INFO FOS 6789 PC SECSYS SECSYS INFO1 6789 TS SECSYS SECSYS INFO2 9009 PC BMS BMS BMS1 My result set must eliminate the duplicate identifiers regardless of whoever we choose of the result set. (I mean without distinction Org, DF, s, Sub-s). My expected result set should be.
ID DSB DF SEC Sub-Sec (163) CQ CPDM CPDM HD 8888 TS TAC TAC TAC 6789 CQ INFO INFO FOS 9009 PC BMS BMS BMS1 Thank you
Orton
Hello
This sounds like a job for ROW_NUMBER:
WITH got_r_num AS
(
SELECT id, DSB, df, s, sub_sec org
ROW_NUMBER () OVER (PARTITION BY ID.
ORDER BY org
) AS r_num
OF view_x
)
SELECT id, DSB, df, sub_sec s,
OF got_r_num
WHERE r_num = 1
;
He is a Top - N query example, where you choose the elements of N (N = 1 in this case) from the top of an ordered list.
I hope that answers your question.
If not, post a small example of data (CREATE TABLE and INSERT, only relevant columns instructions) to your sample data and the results desired from these data. (I know that you said that you were a view selection. Just for this thread, pretending it is a picture and post simple CREATE TABLE and INSERT statements to simulate your point of view).
Point where the above query is to produce erroneous results, and explain, using specific examples, how you get the right results from data provided in these places. (I didn't quite understand the explanation above. I don't know why you want toID ORG DF DRY SUB_SEC
-- --- -- --- -------
1234 CQ DPRK DPRK HD
and is not
1234 IS CQ ASIC, ASIC
or
TS 1234 IT IT SW
or
1234 CQ ASIC ASIC HD
)
If you change the query at all, post your modified version.
Always say what version of Oracle you are using (for example, 11.2.0.2.0).See the FAQ forum: https://forums.oracle.com/message/9362002
-
need help with the query, thx
Hello
I need a little help with the query I have to write;
the table has 4 columns:
what I am asking is the following result: salary according to the latest available yearcol1 col2 col3 col4 emp_name empl_id salary year content of data: col1 col2 col3 col4 smith 12 1200 1999 smith 12 1340 2000 smith 12 1500 2001 jones 13 1550 1999 jones 13 1600 2000 aron 14 1200 2002
i.e.
ID appreciate some guidance on how to achievesmith 12 1500 2001 jones 13 1600 2000 aron 14 1200 2002
Thank you
Rgdsselect *from (select col1, col2,col3, col4,row_number() over(partition by col1 order by col4 desc) rn from
) where rn=1 -
Hi, can someone help me with the query. I try to display comm based on calculation below
SAL < 5000 then 10%
5000 - 10000 then 15%
> 10000 then 20%
This is the query
DECLARE
v_comm number (7.2);
v_Name emp.ename%type;
v_empno emp.empno%type;
v_sal emp.sal%type;
BEGIN
SELECT ename, empno, sal IN
v_Name, v_empno, v_sal
EMP;
v_comm: = (IF v_sal < v_sal*.10 then 5000;)
ELSIF v_sal between 5001 AND 10000 THEN v_sal*.15;
Of ANOTHER v_sal > 10001 THEN v_sal*.20;
END IF ;);
dbms_output.put_line(v_Name||) e with empno' | v_empno | "win a comm' | v_comm);
END; /
also tried
DECLARE
v_comm number (7.2);
v_Name emp.ename%type;
v_empno emp.empno%type;
v_sal emp.sal%type;
BEGIN
SELECT ename, empno, sal IN
v_Name, v_empno, v_sal
EMP;
IF v_sal < v_comm then 5000: = v_sal*.10;
ELSIF v_sal between 5001 AND 10000 THEN v_comm: = v_sal*.15;
Of ANOTHER v_sal > 10001 THEN v_comm: = v_sal*.20;
END IF ;);
dbms_output.put_line(v_Name||) e with empno' | v_empno | "win a comm' | v_comm);
END;
/
Hello
Look at the syntax of the IF in the PL/SQL manual. Comapre to the instruction BOX and also the expression BOX.
Perhaps, instead of an IF statement
v_comm: = (IF v_sal<5000 then="">5000>
ELSIF v_sal between 5001 AND 10000 THEN v_sal*.15;
ELSE v_sal > 10001 THEN v_sal*.20;
END IF ;);
you wanted to write an expression BOX, like this:
v_comm: = BOX
WHEN v_sal< 5000 ="" then="" v_sal="" *="">
WHEN v_sal BETWEEN 5001 AND 10000 THEN v_sal *.15
WHEN v_sal > 10001 THEN v_sal *.20
END;
Or perhaps cela:
v_comm: = v_sal * CASE
WHEN v_sal<= 5000="" then="">= >
WHEN v_sal<= 10000="" then="">=>
OF AUTRE.20
END;
You can also use a CASE expression in the SELECT statement.
-
NEED HELP WITH THE QUERY, NEED MORE RECENT FILE ONLY
Hi all
That is,
I have an assignment I need to find agents that allow players to break the rules.
So far, I have 41 results, in which there are 4 principles and 24 footballers and football player even beat more than one rule or the rule more than once.
What I need now is to make arrangements so that every footballer appears once n matter how many times they have broken the rules.
I have
SELECT
t.transfer_time | ' ' || a.first_name | ' ' || a.last_name | ' ' || f.first_name | ' ' || f.last_name | ' ' || f.footballer_id | ' ' || t.transfer_id
Of
agents a, t transfers, footballers f, footballers_fees fo
WHERE
a.agent_id = t.broker_id
AND
t.footballer_id = f.footballer_id
AND
f.footballer_id = fo.footballer_id
AND
(RULE 1 BROKEN AND RULE 2 BROKEN
OR
RULE 1 BROKEN AND ARTICLE 2 DOES NOT DECOMPOSE
OR
RULE 1 DOES NOT DECOMPOSE AND RULE 2 BROKEN)
GROUP BY
t.transfer_time | ' ' || a.first_name | ' ' || a.last_name | ' ' || f.first_name | ' ' || f.last_name | ' ' || f.footballer_id | ' ' || t.transfer_id
ORDER BY
t.transfer_time | ' ' || a.first_name | ' ' || a.last_name | ' ' || f.first_name | ' ' || f.last_name | ' ' || f.footballer_id | ' ' || t.transfer_id
;
(I did not type the SQL code to rules 1 and 2 but I know it works)
Now, I need not to show that every footballer once they broke rule and more than once or not.
I was looking at the screen nearly enough hours 10 and any help or ideas would be greatly appreciated
Thank you all :)Hello
Welcome to the forum!
Whenever you have a problem, please post a small example of data (CREATE TABLE and INSERT statements) so that people who want to help you can recreate the problem and test their ideas. You don't have to display a large amount of data. In this case, it seems that 2 to 10 lines for each table could give a good picture of the problem.
After the results that you want samples fropm, and explain how you get those resulting from these data.
Always tell what version of Oracle you are using.The ideal outcome would be just what you '; Re I get now, but with some deleted rows and only 1 line by left footballer? If so, do a subquery on the original query, and then add somehting like
, ROW_NUMBER () OVER (PARTITION BY f.footballer_id ORDER BY NULL) AS r_num
in the SELECT clause.
then, in the main query, display only linesWHERE r_num = 1
ROW_NUMBER requires an ORDER byclause of analytics. If you ORDER BY a constant (e.g. NULL) then what line gets number 1 will be arbitrary. If you care who lines for a given player is numbered 1 (and therefore included in the final output), then adjust the analytical ORDER BY clause. (You the title mentions "most recent record only", so if the dt column indicates whether a line is "newer" than another, you can "ORDER BY dt DESC".)
I know this response is vague in places. Without a concrete example (CREATE TABLE and instructions INSERT for examples of data and outcomes from these data), that's the best I can do.
-
Need help with the query using the aggregation
If I have a table, defined as follows:
CREATE TABLE range_test
(
range_id NUMBER (20) NOT NULL,
rank of char (1) NOT NULL,
lower_bound_of_range NUMBER (5.2) NOT NULL,
upper_bound_of_range NUMBER (5.2) NOT NULL,
received_date_time_stamp SYSTIMESTAMP NOT NULL DEFAULT TIMESTAMP
);
And I wanted to query the table to find the range associated with the last line inserted for each 'class' (for example 'A', 'B', 'C', etc.), how would I go about this?
I want something like the following, but I know that it will not work right:
SELECT
grade,
lower_bounding_of_range,
upper_bounding_of_range,
Max (received_date_time_stamp)
Of
range_test GROUP BY received_date_time_stamp;
Thanks for your help... I am frustrated with this one and I think that it should be possible without having to use the PL/SQL (i.e. the functions of SQL aggregation or subqueries should work).Perhaps something along the lines of...
SQL> ed Wrote file afiedt.buf 1 select deptno, empno, ename, hiredate 2 from emp 3* order by deptno, empno SQL> / DEPTNO EMPNO ENAME HIREDATE ---------- ---------- ---------- -------------------- 10 7782 CLARK 09-JUN-1981 00:00:00 10 7839 KING 17-NOV-1981 00:00:00 10 7934 MILLER 23-JAN-1982 00:00:00 20 7369 SMITH 17-DEC-1980 00:00:00 20 7566 JONES 02-APR-1981 00:00:00 20 7788 SCOTT 19-APR-1987 00:00:00 20 7876 ADAMS 23-MAY-1987 00:00:00 20 7902 FORD 03-DEC-1981 00:00:00 30 7499 ALLEN 20-FEB-1981 00:00:00 30 7521 WARD 22-FEB-1981 00:00:00 30 7654 MARTIN 28-SEP-1981 00:00:00 30 7698 BLAKE 01-MAY-1981 00:00:00 30 7844 TURNER 08-SEP-1981 00:00:00 30 7900 JAMES 03-DEC-1981 00:00:00 14 rows selected. SQL> ed Wrote file afiedt.buf 1 select deptno, empno, ename, hiredate 2 from ( 3 select deptno, empno, ename, hiredate 4 ,row_number() over (partition by deptno order by hiredate desc) as rn 5 from emp 6 ) 7 where rn = 1 8* order by deptno, empno SQL> / DEPTNO EMPNO ENAME HIREDATE ---------- ---------- ---------- -------------------- 10 7934 MILLER 23-JAN-1982 00:00:00 20 7876 ADAMS 23-MAY-1987 00:00:00 30 7900 JAMES 03-DEC-1981 00:00:00 SQL>
-
need help with the query: (Frank)
Hi Frank,.
I have the oracle 8 database.
I have the following table with the data structure:
TABLE P (PID, PNAME, COLOR)
PRIMARY KEY: PID
CAT TABLE (SID, PID, COST)PID Pname Color p1........... Red P2................. green p3............... blue p4 .................. red
KEY: SID MAIN + PID
KEY REFERENCE: SID REFERENCE S.SID
PID P.PID REFERENCES
now my question is:Sid Pid COst.... S1 P1 S2 P2 S3 P3 S1 P4 S2 p1 S3 p1
I want to find the SIDS of suppliers that provide a red and a green part
for this I used the following query, but it gives the result worng...
can help me please in this way to get this...
select sid from cat where pid in (select pid from p where color= 'red' union select pid from p where color = 'gren') group by sid having count(pid) >= 2
Hello
Jojo wrote:
Hi Frank,.It would be nice if someone with a different name helped you? Do not restrict yourself by addressing someone in particular in your subject line or the first message.
I have the oracle 8 database.
I have the following table with the data structure:TABLE P (PID, PNAME, COLOR)
PRIMARY KEY: PIDPID Pname Color p1........... Red P2................. green p3............... blue p4 .................. red
CAT TABLE (SID, PID, COST)
KEY: SID MAIN + PID
KEY REFERENCE: SID REFERENCE S.SID
PID P.PID REFERENCESSid Pid COst.... S1 P1 S2 P2 S3 P3 S1 P4 S2 p1 S3 p1
now my question is:
I want to find the SIDS of suppliers that provide a red and a green partfor this I used the following query, but it gives the result worng...
can help me please in this way to get this...
select sid from cat where pid in (select pid from p where color= 'red' union select pid from p where color = 'gren') group by sid having count(pid) >= 2
You don't like what is the number of lines with a pid; If you had 20 rows all said 'p1', that would be good enough. The number of distinct colors of the whole ('red', 'green') is what is important.
Avoid the UNION when there is a simple alternative. The UNION tends to be slow.You can use a join instead, like this:
SELECT c.sid FROM cat c , p WHERE p.pid = c.pid AND p.color IN ('red', 'green') GROUP BY c.sid HAVING COUNT (DISTINCT p.color) = 2 ;
If you would care to post CREATE TABLE and INSERT statements for the sample data and the results that you want from this data, then I could test this.
Published by: Frank Kulash, January 10, 2011 15:25
-
Help with the query to return the last possible value
Can someone please help me to create a query for the situation below?
Table: TABLEA
Columns:
FACID VARCHAR2 (10),
DEPTID VARCHAR2 (10),
CHARGENUMBER NUMBER (10)
I have the following data:
A, B, 1
A, B, 2
C, D, 3
C, D, 4
I will return the following:
A, B, 2
C, D, 4
In other words, I would return the last possible CHARGENUMBER for FACID and DEPTID.
The table has no index, and it is responsible for a worksheet in that order.
Thank you very much!Hello
If you have a TIMESTAMP column, called entry_dt, you can use a Top - N query like this to find the last x entries.
WITH got_rnum AS ( SELECT my_table.* , RANK () OVER (ORDER BY entry_dt DESC) AS rnum FROM my_table ) SELECT * -- or list all columns except rnum FROM got_rnum WHERE rnum <= x ;
It is very common to have a trigger to ensure that columns like entry_dt are met.
If you have only one statement that inserts with hundreds of lines, they can all have the same entry_dt. (The value of SYSTIMESTAMP is constant throughout a statement, even if it takes a few seconds).
The above query uses RANK, so if you tell him you want the last 10 entries, it can return more than 10, because it includes all lines with exactly the same entry_dt as the 10th. If you want to exactly 10 rows returned, even if there is a tie for 10th place, then use ROW_NUMBER instead of RANK; the rest of the query is the same. -
Need help with the query. Help, please
Hey everyone, need your help. Thank you in advance. In my view, there is function Pivot. Just do not know how to use this function. I have the query that works. The result is:
11-111-1111 Vlad 16505 01/04/2013 5 August 13 dental plan pre-tax amount 29,65
11-111-1111 Vlad 16505 01/04/2013 dental pre-tax 5 August 13 Plan level EE + SP
11-111-1111 16505 Vlad 01/04/2013 5 August 13 pre-tax Option TOP dental plan
11-111-1111 Vlad 16505 01/04/2013 5 August 13 pre-tax dental care plan pay the value
11-111-1111 16505 Vlad 01/04/2013 dental pre-tax 5 August 13 Plan period Type
11-111-1111 Vlad 16505 01/04/2013 amount pre-tax medical Plan of 5 August 13 149
11-111-1111 Vlad 16505 01/04/2013 5 August 13 pre-tax Medical Plan level EE + SP
11-111-1111 Vlad 16505 01/04/2013 5 August 13 pre-tax Plan medical Option MED
11-111-1111 Vlad 16505 01/04/2013 5 August 13 plan pre-tax pay value
11-111-1111 16505 Vlad 01/04/2013 5 August 13 pre-tax Medical Plan period Type
11-111-1111 Vlad 16505 01/04/2013 5 August 13 pre-tax Plan PPO medical Plan
11-111-1111 Vlad 16505 01/04/2013 5 August 13 Vision Plan amount 5.94 pre-tax
But I need the result to be
Amount of SSN ID name item level Option PayValue period Type
11-111-1111 Vlad 16505 01/04/2013 null null high of 5 August 13 pre-tax Dental Plan 29,65 EE + SP
11-111-1111 Vlad 16505 01/04/2013 null null MED 5 August 13 149 medical plan pre-tax EE + SP
11-111-1111 Vlad 16505 01/04/2013 Vision Plan before taxes of 5 August 13
Select distinct
' 11-111-1111 "as ssn,
WOMEN'S WEAR. Employee_number,
"Vlad" as EMPLOYEE_FULL_NAME,
TO_CHAR (papf.start_date, "MM/DD/YYYY") as Date_Of_Hire
a.effective_start_date,
PETF.element_name,
pivf. Name,
peevf.screen_entry_valueOf
PER_all_PEOPLE_F women's wear
per_assignments_f A
pay_element_types_f petf
pay_element_links_f pelf
PAY_ELEMENT_ENTRIES_F penf
PAY_ELEMENT_ENTRY_VALUES_F peevf
pay_input_values_f pivf
WHERE
PETF.element_name ('Dental Plan before taxes', 'Medical Plan before taxes', "Vision Plan before taxes")
and petf. ELEMENT_TYPE_ID = pelf. ELEMENT_TYPE_ID
and (trunc (sysdate) BETWEEN pelf. EFFECTIVE_START_DATE AND pelf. EFFECTIVE_END_DATE)
and (pelf. ELEMENT_LINK_ID = penf. ELEMENT_LINK_ID and a.assignment_id = penf. ASSIGNMENT_ID)
and (trunc (sysdate) BETWEEN penf. EFFECTIVE_START_DATE AND penf. EFFECTIVE_END_DATE)
and penf. ELEMENT_ENTRY_ID = peevf. ELEMENT_ENTRY_ID
and peevf. INPUT_VALUE_ID = pivf. INPUT_VALUE_ID
AND papf.employee_number IS NOT NULL
AND A.assignment_type = 'E '.
AND A.person_id = papf.person_id
and papf.effective_end_date > sysdate
and a.effective_end_date > sysdate
and (trunc (sysdate) BETWEEN women's wear. EFFECTIVE_START_DATE AND women's wear. EFFECTIVE_END_DATE)
and a.effective_start_date = (select MAX (effective_start_date) from PER_ASSIGNMENTS_f where assignment_id = a.assignment_id)
and a.assignment_id = 42643
and a.assignment_status_type_id = '1'
order of petf.element_name;Change with your query
SELECT * FROM (select distinct)
' 11-111-1111 "as ssn,
WOMEN'S WEAR. Employee_number,
"Vlad" as employee_full_name,
TO_CHAR (papf.start_date, "MM/DD/YYYY") as date_of_hire
a.effective_start_date,
PETF.element_name,
pivf. Name,
peevf.screen_entry_value
Of
PER_all_PEOPLE_F women's wear
per_assignments_f A
pay_element_types_f petf
pay_element_links_f pelf
PAY_ELEMENT_ENTRIES_F penf
PAY_ELEMENT_ENTRY_VALUES_F peevf
pay_input_values_f pivf
WHERE
PETF.element_name ('Dental Plan before taxes', 'Medical Plan before taxes', "Vision Plan before taxes")
and petf. ELEMENT_TYPE_ID = pelf. ELEMENT_TYPE_ID
and (trunc (sysdate) BETWEEN pelf. EFFECTIVE_START_DATE AND pelf. EFFECTIVE_END_DATE)
and (pelf. ELEMENT_LINK_ID = penf. ELEMENT_LINK_ID and a.assignment_id = penf. ASSIGNMENT_ID)
and (trunc (sysdate) BETWEEN penf. EFFECTIVE_START_DATE AND penf. EFFECTIVE_END_DATE)
and penf. ELEMENT_ENTRY_ID = peevf. ELEMENT_ENTRY_ID
and peevf. INPUT_VALUE_ID = pivf. INPUT_VALUE_ID
AND papf.employee_number IS NOT NULL
AND A.assignment_type = 'E '.
AND A.person_id = papf.person_id
and papf.effective_end_date > sysdate
and a.effective_end_date > sysdate
and (trunc (sysdate) BETWEEN women's wear. EFFECTIVE_START_DATE AND women's wear. EFFECTIVE_END_DATE)
and a.effective_start_date = (select MAX (effective_start_date) from PER_ASSIGNMENTS_f where assignment_id = a.assignment_id)
and a.assignment_id = 42643
and a.assignment_status_type_id = '1')
PIVOT (MAX (screen_entry_value) FOR (name) TO ("Amount" AS 'Amount', 'level' AS 'level', 'Option High' AS 'High Option', 'Pay the value' AS 'Value to pay', 'Period of Type' AS 'Type period'))
order by element_name;
(GOLD)
SELECT ssn,
Employee_number,
employee_full_name,
date_of_hire,
effective_start_date,
element_name,
Max (decode (Name, 'Amount', screen_entry_value)) 'amount. "
Max (decode (Name, 'Level', screen_entry_value)) 'level ',.
MAX (DECODE (name, "High Option", screen_entry_value)) "High Option",
MAX (DECODE (name, 'Value of pay', screen_entry_value)) 'value of pay. "
MAX (DECODE (name, 'Period Type', screen_entry_value)) 'period of Type '.
FROM (select distinct)
' 11-111-1111 "as ssn,
WOMEN'S WEAR. Employee_number,
"Vlad" as employee_full_name,
TO_CHAR (papf.start_date, "MM/DD/YYYY") as date_of_hire
a.effective_start_date,
PETF.element_name,
pivf. Name,
peevf.screen_entry_value
Of
PER_all_PEOPLE_F women's wear
per_assignments_f A
pay_element_types_f petf
pay_element_links_f pelf
PAY_ELEMENT_ENTRIES_F penf
PAY_ELEMENT_ENTRY_VALUES_F peevf
pay_input_values_f pivf
WHERE
PETF.element_name ('Dental Plan before taxes', 'Medical Plan before taxes', "Vision Plan before taxes")
and petf. ELEMENT_TYPE_ID = pelf. ELEMENT_TYPE_ID
and (trunc (sysdate) BETWEEN pelf. EFFECTIVE_START_DATE AND pelf. EFFECTIVE_END_DATE)
and (pelf. ELEMENT_LINK_ID = penf. ELEMENT_LINK_ID and a.assignment_id = penf. ASSIGNMENT_ID)
and (trunc (sysdate) BETWEEN penf. EFFECTIVE_START_DATE AND penf. EFFECTIVE_END_DATE)
and penf. ELEMENT_ENTRY_ID = peevf. ELEMENT_ENTRY_ID
and peevf. INPUT_VALUE_ID = pivf. INPUT_VALUE_ID
AND papf.employee_number IS NOT NULL
AND A.assignment_type = 'E '.
AND A.person_id = papf.person_id
and papf.effective_end_date > sysdate
and a.effective_end_date > sysdate
and (trunc (sysdate) BETWEEN women's wear. EFFECTIVE_START_DATE AND women's wear. EFFECTIVE_END_DATE)
and a.effective_start_date = (select MAX (effective_start_date) from PER_ASSIGNMENTS_f where assignment_id = a.assignment_id)
and a.assignment_id = 42643
and a.assignment_status_type_id = '1')
GROUP BY ssn, employee_number, employee_full_name, date_of_hire, effective_start_date, NOM_ELEMENT
order by element_name;
-
Need help with the query string manipulation
Hello
With the help of 10.1.0.4.2
Given a table called PREFIX_CODES that contains a column called PREFIX_CODE
with the following data:
PREFIX_CODE - VARCHAR2 (20)
-------------------
AAA
BENAMER
CARTER
and another table called SUBSCRIBERS with a column called SUBSCRIBER_ID
with the following data:
SUBSCRIBER_ID - VARCHAR2 (30)
---------------------
BBBB-123456
AAA-444444
DD-2222222
EEEE-888888
Is there a query that will pull all the SUBSCRIBER_ID that begin with
each of the PREFIX_CODES? The following query is not valid, but it
This will give you an idea of what I'm trying to do:
SELECT SUBSCRIBER_ID
SUBSCRIBERS
WHERE AS SUBSCRIBER_ID (SELECT PREFIX_CODE |) » %'
OF PREFIX_CODES)
Using the data from above, I would like that the query to return:
BBBB-123456
AAA-444444
Thanks for your help!Hello
Welcome to the forum!
You were on the right track. To find if a given subscriber corresponds to any prefix_code, you can do an EXISTS subquery:
SELECT subscriber_id FROM subsribers s WHERE EXISTS ( SELECT NULL FROM prefix_codes WHERE s.subscriber_id LIKE prefix_code || '%' ) ;
This will tell you if at least a prefix code. It won't tell you exactly how many, or what they were.
Your message, I'm guessing that there may be more than one, and you can deduct the subscriber_id itself, then the above query should work for you. -
Need help with the recovery partition/create recovery media
HI - first thing I did when I got my thinkpad is a clean install of w7, but then I thought about it and restored the recovery partition, conviniently located at the end of the training, in order to create a backup dvd factory. Thing is, when I click the autorun (lenovoqdrive.exe) and select 'create recovery media', I get an error stating that "program files (x 86) \lenovo\factory recovery\recovburncd.exe" is missing... obviously since the operating system partition was crushed.
I tried RnR and looked on the software + drivers page and nothing happens as "... \lenovo\factory recovery\" when it is installed. So, where can I download the program that creates the recovery discs?
(I know possible to restore the operating system of the *.wim file but I want to leave that as a last resort).
Okay here's what I did to who mightve had the same question: as mentioned earlier, I have restored the partition Q with (your favorite free partition recovery tool), then booted from a usb winpe (with imagex) generated from victory aik (free).
first I deleted (from winpe boot usb) windoze partition with diskpart and recreated the 2 partitions S & C (and Q is on the left) by hand according to 'recovery.ini' found on q. then I restored S and C 'sdrivebackup.wim' and 'cdrivebackup.wim', respectively, using imagex.exe, which is actually two one liners.
Finally, I tried the bcd to fixation by hand according to "bcdinfo.txt", also found on Q, but that did not really work... so I just jumped into a bootable win7 USB and he rewrote the bcd by itself (I assume). the last step has been fixing the mbr by using /fixmbr and /fixboot bootrec.exe.
ATM I started just and afaict it behaves exactly like the first start-up of the plant. see you soon
-
Need help with the query to get the County
Hello
Oracle 10 g 2 10.2.0.3 - 64 bit
I want back the number of accounts with two different types of funds (say A and B). Some accounts hold only one of the two funds, and some support both. I want to get the counts like this:
- account held funds - has only
- accounts holding funds-B only
- accounts holding the Fund-A and B funds
Here is what I started with but need assistance to meet the requirement above:
select count(distinct acct.bkoff_acct_no ) accounts_holding_fund_A from xe_account acct, xec_tal_investment_mandate iman, xec_tal_asset_allocation alloc, xe_benchmark bmark, xe_benchmark_usage bu, xe_object_description xod, xec_asset_class cls where iman.mandate_status_cd='A' and cls.asset_class_cd = alloc.asset_class_cd and iman.mandate_id = alloc.mandate_id and acct.account_id = iman.object_id and iman.object_type_cd = 'ACCT' and iman.mandate_id = xod.object_id and xod.field_nm='XEC_TAL_INVESTMENT_MANDATE.COMMENT_TXT' and xod.language_cd = 'E' and acct.acct_status_cd = 'O' and bu.object_type_cd(+) = 'TMAA' and bu.object_id(+) = alloc.asset_allocation_id and bmark.benchmark_id(+) = bu.benchmark_id and alloc.resp_txt like '%fund-A%'
And suppose that the Fund-B has resp_txt like ' % of Fund-B»
Please suggest.
Concerning
Hello
Here is another way, it is easier to adapt to different jobs and different numbers of jobs:
WITH got_distinct_jobs AS
(
SELECT DISTINCT deptno, job
FROM scott.emp
WHERE job IN ("ANALYST", "CLERKS") - or what
)
got_job_list AS
(
SELECT LISTAGG (job, ",") THE Group (ORDER BY work) AS job_list
OF got_distinct_jobs
GROUP BY deptno
)
SELECT job_list
COUNT (*) AS num_departments
OF got_job_list
GROUP BY job_list
;
This shows all the combinations of the jobs listed in the WHERE clause of got_distinct_jobs. You don't need to change anything else in the query. There may be any number of jobs.
Output:
JOB_LIST NUM_DEPARTMENTS
------------------------------ ---------------
CLERK 2
ANALYST, CLERK 1
-
Ask for help with the query group by
Hello
I have the following table with values structure
I have the following requirement, the output should be:CREATE TABLE DUMMY ( SR_NUMBER VARCHAR2(100 CHAR), ASSIGNMENT_GROUP VARCHAR2(100 CHAR), REASSIGNMENT_COUNT VARCHAR2(100 CHAR), CREATED DATE, CLOSED DATE, TARGET_DATE DATE ) insert into dummy values('AAA','A','1','02-OCT-11','25-OCT-11','09-OCT-11'); insert into dummy values('ABC','A','1','03-SEP-12','26-SEP-11','10-SEP-11'); insert into dummy values('AVB','A','1','02-NOV-13','25-NOV-13','09-NOV-13'); insert into dummy values('AFT','B','1','02-OCT-11','25-OCT-11','09-OCT-11'); insert into dummy values('ACS','B','1','02-JAN-12','25-JAN-12','09-JAN-12'); insert into dummy values('AVC','B','1','02-OCT-13','25-OCT-13','09-OCT-13'); insert into dummy values('AAD','B','1','02-MAR-14','25-MAR-14','09-MAR-14'); insert into dummy values('AAA','C','1','02-OCT-11','25-OCT-11','09-OCT-11'); insert into dummy values('AAA','D','1','02-JUN-11','25-JUN-11','09-JUN-11'); insert into dummy values('AAA','E','1','02-APR-12','25-APR-12','09-APR-12'); insert into dummy values('AAA','A','1','02-FEB-13','25-FEB-13','09-FEB-13'); ?
Number of ticket (sr_number)
% of tickets inside the DL
Number of tickets inside the DL
Average cycle time (cycle time = closing date - date of creation)
Total cycle time (cycle time = closing date - date of creation)
Number of reallocations (sum)
DL - (deadline) formula is, closed date < = target_date
This should be displayed, grouped by year, then month, then the assignment group. The values must be in descending order (dates) is not sure that group in operation here.
I am able to write the code base of the foregoing, but group from the year, month, and group assignment is pretty confusing to me.
Can someone give me a voucher code...This may not give you exactly what you want, but if all goes well, it will give you something to work with:
WITH tickets AS ( SELECT TO_CHAR(created, 'YYYY') created_year, TO_CHAR(created, 'MM') created_month, assignment_group, COUNT(sr_number) ticket_count, AVG(closed - created) avg_cycle_time, SUM(closed - created) tot_cycle_time, COUNT(reassignment_count) reassign_count FROM dummy GROUP BY TO_CHAR(created, 'YYYY'), TO_CHAR(created, 'MM'), assignment_group ), dl_tickets AS ( SELECT TO_CHAR(created, 'YYYY') created_year, TO_CHAR(created, 'MM') created_month, assignment_group, COUNT(sr_number) ticket_in_dl_count FROM dummy WHERE closed <= target_date GROUP BY TO_CHAR(created, 'YYYY'), TO_CHAR(created, 'MM'), assignment_group ) SELECT t.created_year, t.created_month, t.assignment_group, t.ticket_count, NVL(dl.ticket_in_dl_count, 0) ticket_in_dl_count, NVL(dl.ticket_in_dl_count/t.ticket_count, 0) * 100 pct_ticket_in_dl_count, t.avg_cycle_time, t.tot_cycle_time, t.reassign_count FROM tickets t, dl_tickets dl WHERE t.created_year = dl.created_year (+) AND t.created_month = dl.created_month (+) ORDER BY created_year DESC, created_month DESC
Published by: user1983440 on May 27, 2013 15:47 - added reassign_count
Published by: user1983440 on May 27, 2013 15:54 - added ORDER BY
-
Help with the query GROUP BY?
Why the habit of this work? When I run the code with the first where clause it works fine.
It returns the result that there is a diffirating marked "A".select diffrating, count (diffrating) from IT220_HOLIDAYDETAILS where diffrating = 'A' GROUP BY diffrating
However, when I try to add other clauses he says "no data found"?
How can this be when he came 'A' data in the first place? Surely, it should return 'A' as a negative because it worked before?select diffrating, count (diffrating) from IT220_HOLIDAYDETAILS where diffrating = 'A' and diffrating = 'B' and diffrating = 'C' and diffrating = 'D' and diffrating = 'E' GROUP BY diffrating
What I want is to count all results for each diffrating and return them. Any reason, why it does not work?
Thanks in advance!It returns nothing because you try to select a diffrating whose value has, b, c, d and e at the same time.
select diffrating, count (diffrating) from IT220_HOLIDAYDETAILS GROUP BY diffrating
is not already display what you want?
-
Need help with the query (transpose)
Hello experts, please help here - 11 g Oracle, attribute APA APB are fixed values and can be hard coded in query
Need to transpose these data. Max(decode.. perd les données en sortie à cause de la condition de Max.)
Entry:
Name | Attribute | Value
A1 APP 10
A1 PDB 11
A1 APA 20
A1 PDB 21
A2 BPA 13
A2 BPB 14
Expected results:
Name AttVal1 AttVal2
A1 10 11
13 14 A2
20 21 A1
Hello
Here's one way:
WITH relevant_columns AS
(
SELECT name
value
CASE
WHEN the attribute ("APA", "BPA") THEN 1
WHEN the attribute ("PDB", "BPB") THEN 2
END AS c_num
ROW_NUMBER () (PARTITION BY NAME, attirbute
Value of ORDER BY
) AS r_num
FROM table_x
)
SELECT name, attval1, attval2
OF relevant_columns
PIVOT (MAX (value)
FOR c_num IN (1 AS attval1
2 UNDER attval2
)
)
ORDER BY r_num, name
;
If you would care to post CREATE TABLE and INSERT statements for your sample data, and then I could test this.
Why do you want to
NAME ATTVAL1 ATTVAL2
---- ------- -------
A1 10 11
20 21 A1
in the results, rather than
NAME ATTVAL1 ATTVAL2
---- ------- -------
10 21 A1
20 11-A1
? You would be satisfied to one or the other?
Depending on your answer, you may need to modify the analytical ORDER BY clause in the ROW_NUMBER function.
Maybe you are looking for
-
When I send a task to my printer queue says it is printing, but it is not
original title: printer HP F2280 working from XPdesktop When I send a task to my printer queue says it is printing, but it is not. Everything is connected and worked OK. Now jobs just sat there and will not even to cancel. Any suggestions? I had
-
I lost my installation disc for my printer HP Deskjet 3050 a
I lost my installer for my printer drive HP Deskjet 3050 a how can I get a replacement
-
HP Envy 15-j001sr: SATA controller in AHCI or RAID mode?
I wonder, does anyone know how the SATA controller located in HP Envy 15-j001sr (E3Y72EA): in RAID or AHCI mode? I buy this laptop and planning to upgrade to SSD.Upgrade advice will be highly appreciated.What is better: to clone the HDD SSD before in
-
802.11ac module support AIR-RM3000AC-A-K9 CleanAir
The form sheet for the 802.11ac module AIR-CAP3602I-A-K9 mentions CleanAir. However, I have this module inserted in an AP AIR-CAP3602I-A-K9 controlled by a WLC AIR-CT2504-5-K9 and ca radio shows as not capable CleanAir. This is a limitation of the WL
-
I had installed PES 13 a few weeks back.
It worked properly. But now he says my chart does not meet the requirements and gives three options cancel him retry or ignore. If I click on ignore the system will work but when the team selecting comes it freezes and says PSE 13A stopped working an