Comparing column values within same row
Script
<code>
create table testp
( name varchar2(20),
yr1 number,
yr2 number,
yr3 number,
yr4 number);
insert into testp values ('Jana',500,400,300,900);
insert into testp values ('sarat',200,300,800,100);
commit;
<code>
I need the result like this
<code>
NAME First_greatest Second_greatest
Jana 900 500
sarat 800 300
<code>
I've used greatest function to get the First_greatest result, but not getting the second_greatest, can you help?
Thanks
Hi,
Here's one way to do that:
WITH got_r_num AS
SELECT name
, n
, ROW_NUMBER () OVER ( PARTITION BY name
ORDER BY n DESC
) AS r_num
FROM testp
UNPIVOT ( n
FOR yr IN ( yr1
, yr2
, yr3
, yr4
SELECT *
FROM got_r_num
PIVOT ( MAX (n)
FOR r_num IN ( 1 AS first_greatest
, 2 AS second_greatest
Output:
NAME FIRST_GREATEST SECOND_GREATEST
Jana 900 500
sarat 800 300
Perhaps your data should be stored in an upivoted form in the first place, with each yr on a separate row.
Similar Messages
-
Read one column and output its second column value in same row
Hi
I have 2 columns, of which I only wish to read the first column. There is an input value, which comes from an outside source, but we can call a constant for this particular question. This constant value must be compared to these first column values, untill it equals the same value. The code must then read the second columns value in the same row and output this value. The exel spreadsheet is below as an example, though the sheet has far more values and larger numbers.
If there is no value in the first column which is equal to the input constant, it must output a 0. If anyone could help with this it would be fantastic. I'm still busy working on it and might get it eventually, but I would like to get there faster a great deal.
Thanks
Jingles
Attachments:
Exel.JPG 35 KBJingles,
if you get the data in a 2d array, you should be able to write soemthing like this pseudocode:
while i<max length
if checkvalue=array[1,i]
output array[2,i]
i++
if output is empty output zero
Regards,
Kyle Mozdzyn
Applications Engineering
National Instruments
Regards,
Kyle M.
Applications Engineering
National Instruments -
ADF 11g Partial Triggers Row Column Update By Column in the Same Row
Hi.
I have a situation whereby I have a checkbox in a table row, which has an eventchangelistener, which upon activation, trys to update another column in the same row. I can not get this to work through partial triggers, even though I have set up my ids up correctly. The row though can be updated by a command button outside of the table using the same coding techniques, but I need it updated via the checkbox.
Is there a limitation in updating a column within a row, from another row column's event change listener.
Thanks.Updating the other rows from the checkbox works fine for me. Here is what I did.
I DnD Emp table with a new column that says if the emp is new hire. If the checkbox is checked, I set Firstname and Lastname for that row as NewHire. I have partial triggers on Firstname and Lastname columns to update whenever checkbox is checked/unchecked and autosubmit on checkbox to true. Hope this helps.
Try adding column selection property to single and see if it helps.
Edited by: asatyana on Jan 16, 2012 12:48 AM
Edited by: asatyana on Jan 16, 2012 12:49 AM -
How can I sum every other column in the same row?
I have, for each employee, two columns: Planned and Worked.
I would like to sum the values in each Planned column. There are 25 employees, each with their own Planned and Worked columns, on the same row.
How can I do a SUM of every other column, starting with Planned?
Thank you.Thank you, Yellowbox!
The exact formula didn't work; however, it gave me a precise path to follow and come up with this: =SUMIF(E2:BB2,"=Planned",E3:BB3)
Week
Ending Date
Planned Subtotal
Worked Subtotal
Employee1
Employee2
Employee3
Planned
Worked
Planned
Worked
Planned
Worked
1
01/04/2014
120
40
38
40
44
40
50
2
01/11/2014
If not for your starting point, I'd have wasted many more hours on this.
Thanks again!
BB -
How To Concatenate Column Values from Multiple Rows into a Single Column?
How do I create a SQL query that will concatenate column values from multiple rows into a single column?
Last First Code
Lesand Danny 1
Lesand Danny 2
Lesand Danny 3
Benedi Eric 7
Benedi Eric 14
Result should look like:
Last First Codes
Lesand Danny 1,2,3
Benedi Eric 7,14
Thanks,
David JohnsonStarting with Oracle 9i
select last, first, substr(max(sys_connect_by_path(code,',')),2) codes
from
(select last, first, code, row_number() over(partition by last, first order by code) rn
from a)
connect by last = prior last and first = prior first and prior rn = rn -1
start with rn = 1
group by last, first
LAST FIRST CODES
Lesand Danny 1,2,3
Benedi Eric 7,14Regards
Dmytro -
Radio group in classic report based on another column on the same row.
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
Application Express 4.1.0.00.32
How can I have a radio group column based on an LOV utilizing another column on the same row of the report?
For example: what if I had a survey application and depending on the likert scale that was assigned to the question there would be different possible answer choices:
Question 1 on row 1 of the report: The class instructor was friendly?
Likert scale choice is Agreement.
Choices on Radio Group: Strongly Agree, Agree, Undecided, Strongly Disagree
Question 2 on row 2 of the report: The class offered good materials?
Likert scale choice is Quality.
Choices on Radio Group: Excellent, Below Average, Average, Above Average, Excellent
The radio group can change per row depending on the Likert scale assigned to the question which is assigned to a different column on the row.
Can LOV utilize the column? :
SELECT scale_text
FROM scale_choices
WHERE scale_category_choice_id = 2 <<= this would be the Likert scale identifier
ORDER
BY display_orderHere is the answer:
APEX_ITEM.SELECT_LIST_FROM_QUERY(
p_idx IN NUMBER,
p_value IN VARCHAR2 DEFAULT NULL,
p_query IN VARCHAR2,
p_attributes IN VARCHAR2 DEFAULT NULL,
p_show_null IN VARCHAR2 DEFAULT 'YES',
p_null_value IN VARCHAR2 DEFAULT '%NULL%',
p_null_text IN VARCHAR2 DEFAULT '%',
p_item_id IN VARCHAR2 DEFAULT NULL,
p_item_label IN VARCHAR2 DEFAULT NULL,
p_show_extra IN VARCHAR2 DEFAULT 'YES')
RETURN VARCHAR2; -
How to relate two columns in a same row
I want to relate two columns in a same row, like if A2 is Jack then B2 to be A, if A2 is Anand then B2 to be B, If A2 is Arun then B2 to be C and so on. How to do it?
Anand,
Create a table that lists the relationships:
Name
Associated Letter
Jack
A
Anand
B
Arun
C
Then, use a Lookup function to find the name in the lookup table and return the proper letter to your main table.
Jerry -
Is it possible to Lock just one column value in a row?
Is it possible to Lock just one column value in a row
A Java Developer has just asked me if it is possible to Lock just one column value in a row in Oracle
select ename from emp where empno=7369 for update;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 17-DEC-80 800 20
will lock the entire row with empno=7369.
But is it possible to lock one column value from this row, like SAL=800 ?
Edited by: J.Kiechle on Jan 8, 2009 10:45 PMJ.Kiechle wrote:
Is it possible to Lock just one column value in a rowNo. Locking granularity is a row. -
Concatenate a column value across multiple rows - PDW
We are using PDW based on SQL2014. We require an efficient logic on how to concatenate a column value across multiple rows. We have the following table
T1
(CompanyID, StateCD)
Having following rows:
1 NY
1 NJ
1 CT
2 MA
2 NJ
2 VA
3 FL
3 CA
We need a code snippet which will return following result set:
1
CT,NJ,NY
2
MA,NJ,VA
3
CA,FL
We have tried built-in function STUFF with FOR XML PATH clause and it is not supported in PDW. So, we need a fast alternative.Hi Try this:
SELECT * INTO #ABC
FROM
SELECT 1 AS ID,'NY' AS NAME
UNION
SELECT 1 AS ID,'NJ' AS NAME
UNION
SELECT 1 AS ID,'CT' AS NAME
UNION
SELECT 2 AS ID,'MA' AS NAME
UNION
SELECT 2 AS ID,'NJ' AS NAME
UNION
SELECT 2 AS ID,'VA' AS NAME
UNION
SELECT 3 AS ID,'FL' AS NAME
UNION
SELECT 3 AS ID,'CA' AS NAME
)A
CREATE TABLE ##CDB (ID INT, NAME NVARCHAR(800))
DECLARE @TMP VARCHAR(MAX),
@V_MIN INT,
@V_MAX INT,
@V_COUNT INT
SELECT @V_MIN=MIN(ID),@V_MAX=MAX(ID) FROM #ABC
SET @V_COUNT=@V_MIN
WHILE @V_COUNT<=@V_MAX
BEGIN
SET @TMP = '' SELECT @TMP = @TMP + CONVERT(VARCHAR,NAME) + ', ' FROM #ABC
WHERE ID=@V_COUNT
INSERT INTO ##CDB (ID, NAME) SELECT @V_COUNT AS ID ,CAST(SUBSTRING(@TMP, 0, LEN(@TMP)) AS VARCHAR(8000)) AS NAME
SET @V_COUNT=@V_COUNT+1
END
SELECT * FROM ##CDB
OR
SELECT * INTO #ABC
FROM
SELECT 1 AS ID,'NY' AS NAME
UNION
SELECT 1 AS ID,'NJ' AS NAME
UNION
SELECT 1 AS ID,'CT' AS NAME
UNION
SELECT 2 AS ID,'MA' AS NAME
UNION
SELECT 2 AS ID,'NJ' AS NAME
UNION
SELECT 2 AS ID,'VA' AS NAME
UNION
SELECT 3 AS ID,'FL' AS NAME
UNION
SELECT 3 AS ID,'CA' AS NAME
UNION
SELECT 5 AS ID,'LG' AS NAME
UNION
SELECT 5 AS ID,'AP' AS NAME
)A
CREATE TABLE ##CDB (ID INT, NAME NVARCHAR(800))
DECLARE @TMP VARCHAR(MAX),
@V_MIN INT,
@V_MAX INT,
@V_COUNT INT
SELECT @V_MIN=MIN(ID),@V_MAX=MAX(ID) FROM #ABC
SET @V_COUNT=@V_MIN
WHILE @V_COUNT<=@V_MAX
BEGIN
SET @TMP = '' SELECT @TMP = @TMP + CONVERT(VARCHAR,NAME) + ', ' FROM #ABC
WHERE ID=@V_COUNT
SELECT @V_COUNT AS ID ,CAST(SUBSTRING(@TMP, 0, LEN(@TMP)) AS VARCHAR(8000)) AS NAME INTO #TEMP
INSERT INTO ##CDB (ID, NAME) SELECT ID, NAME FROM #TEMP WHERE NAME<>''
DROP TABLE #TEMP
SET @V_COUNT=@V_COUNT+1
END
SELECT * FROM ##CDB
Thanks Shiven:) If Answer is Helpful, Please Vote -
Reg : Concatenation of a column value with multiple rows... URGENT
Hello,
Could any of u help me in concatenating a column value with
multiple rows ???
For ex : I've the following data from emp table :
DEPTNO ENAME
10 KING'S
30 BLAKE
10 CLARK
10 TOM JONES
30 ALLEN
30 JAMES
20 SMITH
20 SCOTT
20 MILLER
10 MILLER
20 rajeev
I want the following output :
deptno Concat_value
10 KING'S,CLARK,TOM JONES,MILLER
20 Rajeev,MILLER,SMITH,SCOTT
30 BLAKE,ALLEN,JAMES
Thanks in Advance,
SriniHello Naveen,
Thanks for ur answer. But I need a single SQL query for getting
what I want. I know the solution in PL/SQL.
Please try it in a single SQL....
Thanks again,
Srini -
Required UDF for comparing values within same context
I have to compare values within the same context.I am getting boolean values for that field.If all the values in the same context are true,then the result should be true .Otherwise false should be passed.
If input is-
<context>
true
false
true
<context>
true
true
<context>
Output should be as-
<context>
false
<context>
true
<context>
Please suggest how to acheive this?..its urgentHi,
Check with this UDF
Src>UDF>target
public void context1(String[] a,ResultList result,Container container)
int k = 0;
int arrayLength = a.length;
if (arrayLength > 0)
String firstElement = a[0];
for (int i = 1; i < arrayLength; ++i)
if(!(a<i>.equalsIgnoreCase(firstElement)))
k = 0;
break;
else
k = 1;
if(k == 1)
result.addValue("true");
else
result.addValue("false"); -
FSG report not printing column values on same line but sequentially
FSG report problem:
We have defined 2 FSG reports 'Balance Sheet - Total' and 'Balance Sheet - Detail'. Both reports have 3 column values, namely the value in Euro (our Functional Currency), the value in MUR - Mauritian rupees (our reporting currency) and the rate of exchange.
The report 'Balance Sheet - Total' displays these values for assets e.g.:-
EURO MUR Rate of exchange
Non-current assets
1. Intangible assets ? ? ?
2. Other investments ? ? ?
(note: ? represents a certain value)
The report 'Balance Sheet - Detail' displays values as follows :-
Account EURO MUR Rate of exchange
1. Property & Equipment
A10101 Building Cost ? 0.00 0.0000
A20105 Motor Veh Accum Dep ? 0.00 0.0000
TOTAL ? 0.00 0.0000
A10101 Building Cost 0.00 ? n/m
A20105 Motor Veh Accum Dep 0.00 ? n/m
(note: ? represents a certain value)
What we don't understand s why the 'Balance Sheet - Detail' report repeats the display of column values in MUR FOLLOWING the display in EURO, instead of displaying column values for EURO and MUR on the same line, just like in the case for 'Balance Sheet - Total'.
Is there anything in the definition of column set, row set or report set should I change?
Can anybody help. Thanks.
nullThe problem is related to defining the column set properly. It is OK with the first report and needs modification for the second. Formatting is also important so that they appear in the same line(row). The columns need to be linked to the fileds and assignment to set of books is also important as mentioned by Rajsekhar
-
SQL Developer - Pulling column value from previous row
I am using Oracle SQL developer and trying to pull a value from a column from the previous row.
Currently this is an example from the code im using.
Select CD1.nbr_dw, CD1.SEQ_DW, CD1.CDL_NET_PAID, CD1.UNITS_ALLOW,CD1.ALLOW_AMT, CD1.UNIT_PRICE, CD1.BACKED_OUT,
case
When CD1.NET_PAID = 0 then 0
****NEW CODE*****
Else CD1.ALLOW_AMT / CD1.UNIT_PRICE
end as NEW_UNITS
From Table_A CD1
join (Select nbr_dw, DET_DW, SEQ_DW
From Table_B
) CD2
on CD1.nbr_dw = CD2.nbr_dw
I need to add another when statement that says when CD1.BACKED_OUT = 'Y' populated the NEW_UNITS field with the previous rows value of CD1.UNIT_PRICE. Note, the CD1.SEQ_DW can be used to determine the previous row. Any ideas?Hi,
Welcome to the forum!
The analytic LAG function can return a value from the previous row:
LAG (cd1.unit_price) OVER ( -- PARTITION BY x -- if needed
ORDER BY cd1.seq_dw
)It's unclear if you need a PARTITION BY clause or not.
"PARTITION BY x" means that you want the value from the last row that has the same value of x as the current row.
If you omit the PARTITION BY clause, it means you want the last row regardless of what any other columns are.
Whenever you have a problem, it ehlps if you post a little sample data (CREATE TABLE and INSERT statements) and the results you want from that data.
Explain how you get those results from that data.
Always say what version of Oracle you're using. -
UIX: How to display more items in 1 column on the same row
Hi
I have a uix table with a couple of columns.
Now I want to display more elements in 1 column, but on the same row
E.g.
article | quantity <> | price
The quantity column has also to buttons to increase/decrease the quantity. Something like:
<column>
<columnFormat displayGrid="true" cellNoWrapFormat="true" columnDataFormat="numberFormat"/>
<columnHeader>
<sortableHeader text="Quantity" required="yes"/>
</columnHeader>
<contents>
<messageTextInput id="${ui:concat('PurchaseInvoiceLinesView3:Quantity:',uix.current.tableIndex)}" model="${ui:cond(uix.current.isNewRow,null,uix.current.PurchaseInvoiceLinesQuantity)}" text="${uix.current.PurchaseInvoiceLinesQuantity}" name="Quantity" promptAndAccessKey="Quantity" rows="1" maximumLength="6" columns="8">
<onSubmitValidater>
<decimal/>
</onSubmitValidater>
</messageTextInput>
<button text="<" onClick="..."/>
<button text=">" onClick="..."/>
</contents>
</column>
But both buttons appear on a new line. Resulting in:
[ 1]
<
>
The useSeperateRows attribute is by default false, so that should be ok. Any ideas to get the buttons on the same row?
Regards.Hi,
If all of your line items are getting displayed in different pages, to my knowledge, there may be two possibilities.
1) May be the size of the main window can accomodate only one line item. If one item data fills up the window, then there wont' be any space for the next line item data to be accomodated in the same window in the same page, so, the system triggers the next page. Like-wise for each item data. If this is the case, increase the height of the main window to display items in same page.
2) Check the driver program. Find the Write_form block, which is written inside an item loop. May be there is a Form-control Function module( Control_form with parameter 'NEW-PAGE' ) being called after the write_fom block, within the loop. If this is the case, remove the control_form FM section to make the data display in same page.
Best Regards,
Kumaar.S -
Custom row-fetch and how to get column values from specific row of report
Hi -- I have a case where a table's primary key has more than 3 columns. My report on the
table has links that send the user to a single-row DML form, but of course the automatic
fetch won't work because 1) I can't set more than 3 item values in the link and 2) the
auto fetch only handles 2 PK columns.
1)
I have written a custom fetch (not sure it's the most elegant, see second question) that is working
for 3 or few PK columns (it references the 1-3 item values set in the link), but when there are
more than 3, I don't know how to get the remaining PK column values for the specific row that was
selected in the report. How can I access that row's report column values? I'll be doing it from the
form page, not the report page. (I think... unless you have another suggestion.)
2)
My custom fetch... I just worked something out on my own, having no idea how this is typically
done. For each dependent item (database column) in the form, I have a source of PL/SQL
function that queries the table for the column in question, using the primary key values. It works
beautifully, though is just a touch slow on my prototype table, which has 21 columns. Is there
a way to manually construct the fetch statement once for the whole form, and have APEX be smart
about what items get what
return values, so that I don't have to write PL/SQL for every item? Because my query data sources
are sometimes in remote databases, I have to write manual fetch and dml anyway. Just would like
to streamline the process.
Thanks,
CarolHI Andy -- Well, I'd love it if this worked, but I'm unsure how to implement it.
It seems I can't put this process in the results page (the page w/ the link, that has multiple report rows), because the link for the row will completely bypass any after-submit processes, won't it? I've tried this in other conditions; I thought the link went directly to the linked-to page.
And, from the test of your suggestion that I've tried, it's not working in the form that allows a single row edit. I tried putting this manually-created fetch into a before header process, and it seems to do nothing (even with a hard-coded PK value, just to test it out). In addition, I'm not sure how, from this page, the process could identify the correct PK values from the report page, unless it can know something about the row that was selected by clicking on the link. It could work if all the PK columns in my edit form could be set by the report link, but sometimes I have up to 5 pk columns.
Maybe part of the problem is something to do with the source type I have for each of the form items. With my first manual fetch process, they were all pl/sql functions. Not sure what would be appropriate if I can somehow do this with a single (page level?) process.
Maybe I'm making this too hard?
Thanks,
Carol
Maybe you are looking for
-
How can I put the App Store App back on to my macbook? help
the app store app has been removed from my laptop and I can not figure out how to get it back. Please help???
-
Max nodes using Gigabit ethernet and 10G RAC
Does anybody have any experience on the maximum practical number of nodes that can be hooked together using Gigabit ethernet (over copper) as the interconnect? What's the largest such configuration that anyone has done before saturating the private n
-
Adobe Reader X: Controll-Panel disapeares
Hello folks, if i use the Adobe Reader X on my browser the control-panel above the shown documents disapeared. (The one that shows save file or go to site) At first i thought its a problem with the files i looked at but it this problem also appears o
-
I'm having trouble with log4j. I want to create 2 loggers to log to 2 seperate files. I've read the documentation at http://logging.apache.org/log4j/1.2/manual.html but it is too brief and only covers basic logging using a single logger. I've read al
-
I am trying to test some iOS apps with new watch kit but when i run the app in IOS Simulator and i display External Displays > Apple Watch - xxmm i see a black screen and nothing happens. Does anybody has any idea why this happens -I followed tutoria