For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!
Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.
Hi,
I need Java ME SDK 3.2 for a project. I don't see on the downloads page, where can I still get it?
Thanks.
Guy
Whenever you have a question, please post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all the tables involved, and the exact results you want from that data, so that the people who want to help you can re-create the problem and test their ideas.
Explain, using specific examples, how you get those results from that data.
Always say what version of Oracle you're using (e.g. 11.2.0.2.0).
See the forum FAQ:
Use the analytic ROW_NUMBER function to assign numbers 1, 2, 3, ... to each row, with a separate series for each worker and date. Each distinct combination of worker and assigned number will result in a row of output.
You will usually get quicker and more accurate answers if you post create table statements and inserts with some sample data, along with an explanation of the specific problem you are facing.
Here is one way to do it:
WITH test_data as ( SELECT 'Project_A' project,'John' worker,date '2016-05-23' the_date FROM DUAL union all SELECT 'Project_A','Mary',date '2016-05-23' FROM DUAL union all SELECT 'Project_A','Mary', date '2016-05-24' FROM DUAL union all SELECT 'Project_A','Steve',date '2016-05-24' FROM DUAL union all SELECT 'Project_A','Mary',date '2016-05-25' FROM DUAL union all SELECT 'Project_A','Mary',date '2016-05-26' FROM DUAL union all SELECT 'Project_B','John',date '2016-05-23' FROM DUAL union all SELECT 'Project_B','Steve',date '2016-05-24' FROM DUAL ) select worker,c23,c24,c25,c26 from ( SELECT t.*, dense_rank() over (PARTITION BY worker ORDER BY project) AS rn FROM test_data t ) pivot ( MAX(project) FOR the_date in (date '2016-05-23' AS C23,date '2016-05-24' AS C24,date '2016-05-25' AS C25,date '2016-05-26' AS C26) ) ORDER BY worker;
WITH test_data as
(
SELECT 'Project_A' project,'John' worker,date '2016-05-23' the_date FROM DUAL union all
SELECT 'Project_A','Mary',date '2016-05-23' FROM DUAL union all
SELECT 'Project_A','Mary', date '2016-05-24' FROM DUAL union all
SELECT 'Project_A','Steve',date '2016-05-24' FROM DUAL union all
SELECT 'Project_A','Mary',date '2016-05-25' FROM DUAL union all
SELECT 'Project_A','Mary',date '2016-05-26' FROM DUAL union all
SELECT 'Project_B','John',date '2016-05-23' FROM DUAL union all
SELECT 'Project_B','Steve',date '2016-05-24' FROM DUAL
)
select worker,c23,c24,c25,c26 from
SELECT t.*, dense_rank() over (PARTITION BY worker ORDER BY project) AS rn
FROM test_data t
pivot
MAX(project) FOR the_date in (date '2016-05-23' AS C23,date '2016-05-24' AS C24,date '2016-05-25' AS C25,date '2016-05-26' AS C26)
ORDER BY worker;
Results:
You cannot dynamically generate your columns (e.g. generate your column names based on the data) without using special techniques (dynamic SQL), SQL has to have static columns at execution time.
Here's another way to do it.
select worker, d1, d2, d3, d4
from
select project, worker,
dense_rank() over (order by the_date) as date_rank,
dense_rank() over (order by project) as project_rank
from test_data t
pivot (
max(project)
for date_rank in (1 as D1, 2 as D2, 3 as d3, 4 as d4)
order by worker