Rows in the resultset in a line, instead of lines
Hello
assuming that I will have 2 tables:
create table t_customer (ID number, varchar2(20 char) last_name, first_name varchar2(20 char));
create table t_document (ID number, customer_id, document varchar2(200 char));
insert into t_customer (id, first_name, last_name) values (1, 'Smith', 'Peter');
insert into t_document (id, customer_id, document) values (1, 1, "file1.doc");
insert into t_document (id, customer_id, document) values (2, 1, 'file2.doc');
insert into t_document (id, customer_id, document) values (3, 1, 'file3.doc');
I want to get a result like this:
client file #1 #2 file #3
-------------------------------------------------------------------------------------------
Peter Smith file1.doc file2.doc file #3.doc
The result should be in a line, instead of 3 lines.
I used this query:
with the customer
(select ID
last_name
first name
of t_customer)
document1
as (select d.id
d.customer_id
d.document
of t_document d
c t_customer
where d.customer_id = c.id
and c.id = 1
and d.id = 1)
document2
as (select d.id
d.customer_id
d.document
of t_document d
c t_customer
where d.customer_id = c.id
and c.id = 1
and d.id = 2)
document3,
as (select d.id
d.customer_id
d.document
of t_document d
c t_customer
where d.costumer_id = c.id
and c.id = 1
and d.id = 3)
Select c.
d1.*
d2.*
d3.*
Customer c
document1 d1
document2 d2
d3 document3
where c.id = d1.client_id
and d2.client_id = c.id
and c.id = d3.client_id;
My solution works as expected - but seems not as elegant for me. Is there another way to get the desired results? And what would be the solution if the
number of documents that belong to a customer would be dynamic? My solution, I would need to have 10 separate with clauses if 10 records
for a customer would exist.
Any help will be appreciated.
Rgds
J.
Hello
VivaLaVida! wrote:
Thank you - but since I'm on 10g I'm not able to use PIVOT :-(
How everybody had to know that? If you want an answer that works in your version, you say what version it is. Oracle 10 was released in 2003; It is a very long time in this area. It is not yet supported by Oracle more. Nobody is going to assume that you're using something of this age.
The FAQ Forum shows how the pivots in any version; Ann gives a good example in response #3, above.
Where told Ann
GROUP BY tc.last_name |' '|| TC.first_name, TC.ID;
One could also say:
GROUP OF tc.last_name, tc.first_name, tc.id;
Tags: Database
Similar Questions
-
Hello experts,
I created a page that contains an array of advanced, 6-7fields (including a poplist column)
Whenever I have add a new using the line add new line button, I get a null pointer exception.
Code in Scenario1.
Public Sub handleCurrencyChangeEvent()
{
PVO OAViewObject = (OAViewObject) findViewObject ("xxCurrencyPVO1");
Line OARow = (OARow) pvo.first ();
OAViewObject dtlVO = (OAViewObject) findViewObject ("xxEcreditCardDtlVO1");
OARow dtlRow = (OARow) dtlVO.getCurrentRow ();
String currency = (String) dtlRow.getAttribute ("CurrencyCode"); / / NULL POINTER EXCEPTION
If ((currency == null) |) ("AED".equals (currency)))
{
row.setAttribute ("ExchangeRateTypeRender", Boolean.FALSE);
row.setAttribute ("ExchangeRateDateRender", Boolean.FALSE);
row.setAttribute ("ExchangeRateRender", Boolean.FALSE);
}
on the other
{
row.setAttribute ("ExchangeRateTypeRender", Boolean.TRUE);
row.setAttribute ("ExchangeRateDateRender", Boolean.TRUE);
row.setAttribute ("ExchangeRateRender", Boolean.TRUE);
}
}
Public Sub initPVO()
{
OAViewObject appPropsVO = (OAViewObject) findViewObject ("xxCurrencyPVO1");
If (appPropsVO! = null)
{
If (appPropsVO.getFetchedRowCount () == 0)
{
appPropsVO.setMaxFetchSize (0);
appPropsVO.executeQuery ();
appPropsVO.insertRow (appPropsVO.createRow ());
Line OARow = (OARow) appPropsVO.first ();
row.setAttribute ("RowKey", new Number (1));
}
}
handleCurrencyChangeEvent(); / / If I comment on this call, there will be no null pointer when I click on the button Add a new rank and PPR will not be the first line when I select the poplist.
}
Public Sub createDetailRow()
{
String hdrId;
OAViewObject hdrvo1 = (OAViewObject) getxxEcreditCardHdrVO1 ();
OAViewObject dtlvo = (OAViewObject) getxxEcreditCardDtlVO1 ();
Initialize and create a line of VO
If (! dtlvo.isPreparedForExecution ())
{
dtlvo.setMaxFetchSize (0);
dtlvo.executeQuery ();
}
Line dtlrow = dtlvo.createRow ();
dtlvo.executeQuery ();
int count = dtlvo.getRowCount ();
dtlvo.insertRowAtRangeIndex (count, dtlrow);
Development of the sequence for the number of request *.
Number of dtlseq = getOADBTransaction () .getSequenceValue ("xxdm. XXDMI_ECREDIT_CARD_DTL_SEQ");
hdrId = hdrvo1.getCurrentRow ().getAttribute("CreditCardHdrId").toString (); mind vo
dtlrow.setAttribute ("CreditCardHdrId", hdrId);
dtlrow.setAttribute ("CreditCardLineId", dtlseq);
dtlrow.setAttribute ("LineNumber", count + 1);
End of sequence generation *.
dtlrow.setAttribute ("CurrencyCode", "AED");
String currency = (String) dtlrow.getAttribute ("CurrencyCode");
System.out.println ("CurrencyCode:" + currency);
dtlrow.setNewRowState (Row.STATUS_INITIALIZED);
} / / end createDetailRow()
' Public Sub processFormRequest (pageContext OAPageContext, OAWebBean webBean)
{
super.processFormRequest (pageContext, webBean);
OAApplicationModule am = pageContext.getApplicationModule (webBean);
Event string = pageContext.getParameter (OAWebBeanConstants.EVENT_PARAM);
* Treatment add line button *.
If ((ADD_ROWS_EVENT. Equals (Event)) & & "AdvTblRN".equals (pageContext.getParameter ("source"))) ".
{
am.invokeMethod ("createDetailRow", null);
am.invokeMethod ("initPVO");
} //**End add row button *.
otherwise if
("currCodeChangeEvent".equals (pageContext.getParameter (OAWebBeanConstants.EVENT_PARAM)))
{
am.invokeMethod ("handleCurrencyChangeEvent");
}
===========================================================================================================================
Could please help what is wrong in the code, I followed all the steps as stated in the guide, but the table advance, the problem starts whenever I click on the button Add a new row for the creation of new line.
I couldn't understand what was wrong with the code.
Thanks in advance,
Suman
Suman,
A few points:
1. Why do you call handleCurrencyChangeEvent in the event to add a line? Simply set the useful, likely of the values in the line it himself.
ex:-instead of calling the handleCurrenyChange method, simply add the below lines inside the createDetailRow()
dtlrow.setAttribute ("ExchangeRateTypeRender", Boolean.FALSE);
dtlrow.setAttribute ("ExchangeRateDateRender", Boolean.FALSE);
dtlrow.setAttribute ("ExchangeRateRender", Boolean.FALSE);
2. it looks like you have on the field of the currency and that fireAction handleCurrencyChangeEvent action method is called, right?
Instead of using dtlVo.getCurrentRow, use the code below:
public void handleCurrencyChangeEvent(String eventRowSourceParam) { OAViewObject pvo = (OAViewObject)findViewObject("xxCurrencyPVO1"); OARow row = (OARow)pvo.first(); OAViewObject dtlVO = (OAViewObject)findViewObject("xxEcreditCardDtlVO1"); //OARow dtlRow = (OARow)dtlVO.getCurrentRow(); OARow dtlRow = (OARow)this.findRowByRef(eventRowSourceParam); String currency = (String)dtlRow.getAttribute("CurrencyCode"); // NULL POINTER EXCEPTION if ((currency == null) || ("AED".equals(currency))) { row.setAttribute("ExchangeRateTypeRender", Boolean.FALSE); row.setAttribute("ExchangeRateDateRender", Boolean.FALSE); row.setAttribute("ExchangeRateRender", Boolean.FALSE); } else { row.setAttribute("ExchangeRateTypeRender", Boolean.TRUE); row.setAttribute("ExchangeRateDateRender", Boolean.TRUE); row.setAttribute("ExchangeRateRender", Boolean.TRUE); } }
In the controller:
if((ADD_ROWS_EVENT.equals(event)) && "AdvTblRN".equals(pageContext.getParameter("source")) ) { am.invokeMethod("createDetailRow",null); am.invokeMethod("initPVO"); } //**End Add Row Button** else if ("currCodeChangeEvent".equals(pageContext.getParameter(OAWebBeanConstants.EVENT_PARAM))) { String eventRowSourceParam = pageContext.getParameter(EVENT_SOURCE_ROW_REFERENCE); Serializable[] params = {eventRowSourceParam}; Class[] paramTypes = {String.class}; am.invokeMethod("handleCurrencyChangeEvent",params, paramTypes); }
3. Why do you call initPVO when it is clicked on the Add line? Are you calling not just in the PR?
You could call it once in the PR and let. When you call it PR, you may need to remove the handleCurrencyChangeEvent of this method call.
See you soon
AJ
-
Hello
I displays a table on the screen. This table is read only during the initial page load. I want to do only two columns as editable on five in a row when the user clicks a line using adf 12.1.3.
Is it possible in the adf. If possible how to handle this. Please help on this.
For example, drop table editable Full and then replace rest inputText (components entry in general) with af:outoutText, everything except those two.
And use the clickToEdit feature...?
-
Hi Experts,
I have a requirement to get the cursor should point to the first line instead of pointing to the third row. To the help of code below, my cursor points to the third row. Please put some light on it to reach the requirement
XXCLKTestVOImpl vo = getXXCLKTestVO1();
for (int i = 0; i < 3; i ++) {}
Line = vo.createRow ();
vo.insertRow (row);
row.setNewRowState (Row.STATUS_INITIALIZED);
}
Thank you
Gurnur Singh
Problem is solved. Since then, I've been on 12.2.4 Ebs version and was auto insert false setting in AddtablerowBean. To reach the requirement, you will need to refer to the same number of lines to add the addtablerowbean property that you use in loop for. here I use 3 looping so you must use the number 3 lines to add the addtablerowbean property to get there. So whenever you add three rows then cursor in the first row of three lines you will add. Thank you all.
Thank you
Gurnur Singh
-
ListField.drawListRow only draws a line in the first row, all the lines.
I'm close. ListField.drawListRow is called for every row without problem, but the two graphics.drawLine only are displayed (shot) in the first row at the point of coordinates noted.
I thought that each line would get the two drawn drawLines?
Graphics.Clear is called correctly (as a test only - I have commented out them as well, but not changes).
How can I get the two Graphics.drawLine at the bottom of the method called for each line, correctly?
public void drawListRow(ListField listField, Graphics graphics, int index, int y, int width) { Logger.debug("CoffeeStoreContent [drawListRow] y: " + y + " width: " + width); /* * Top Margin */ y += appGraphics.calcHiRes(6); int[] colors = appGraphics.getColorPalette(sportTitle); /* * Get the current CoffeeStore object. */ CoffeeStore currentRow = (CoffeeStore) get(listField, index); StringBuffer subline = new StringBuffer(currentRow.getSource()); subline.append(Characters.SPACE); subline.append("|"); subline.append(Characters.SPACE); subline.append(currentRow.getDateAgo()); int HiX = 43; if (graphics.isDrawingStyleSet(Graphics.DRAWSTYLE_FOCUS)) { graphics.clear(); graphics.setColor(AppGraphics.YELLOW_HIGHLIGHT); graphics.fillRect(0, (index * listField.getRowHeight()), listField.getWidth(), listField.getRowHeight()); graphics.setFont(font); graphics.setColor(Color.BLACK); graphics.drawText(currentRow.getLinkText(), HiX, y, 0, width); graphics.setColor(AppGraphics.TEIGHT); graphics.drawText(subline.toString(), HiX, (y + graphics.getFont().getHeight() + 2), 0, width); } else { graphics.clear(); graphics.setColor(colors[0]); graphics.fillRect(0, (index * listField.getRowHeight()), listField.getWidth(), listField.getRowHeight()); graphics.setFont(font); graphics.setColor(AppGraphics.TSIX); graphics.drawText(currentRow.getLinkText(), HiX, y, 0, width); graphics.setColor(Color.WHITE); graphics.drawText(subline.toString(), HiX, (y + graphics.getFont().getHeight() + 2), 0, width); } graphics.setColor(colors[2]); graphics.drawLine(0, 50, width, 50); graphics.setColor(colors[3]); graphics.drawLine(0, 51, width, 51); }
No - only y + 50 is enough.
-
Hello
I need a little help...
For some reason, I have to change the underlying table for a treatment of automatic process (process Row) line (form).
Although such a change is possible in the designer of the page (under "settings") Apex does not recognize the new name of the table, but seem to rather use the name of the original table "old."
Pretty strange (new/modified) (the new table columns) are (correctly) error message.
For example, the 'old' is: TABLE_1 and TABLE_2 new.
TABLE_2 has a new COLUMN_NEW column (and corresponding P1234_COLUMN_NEW page element exists)
Then the error message says something like: not found COLUMN_NEW column in TABLE_1. Althougt I changed the table to be TABLE_2.
Maybe it's a bug or I do something wrong about this?
Thank you in advance!
André
OK, just to get some - you changed the name of the table twice:
-Rendering of section--> Page1234: Pagename--> pre-rendering--> after the header--> process of--> line from TABLE_2
-Treatment article--> treatment--> process--> process of line from TABLE_2
I thought, that always seek you the line of TABLE_1
Christian
-
Mr President.
My worm jdev is 12.2.1
How to enter two rows at the same time with different default values that only the first line to use see?
Suppose I have a table with four fields as below
"DEBIT" VARCHAR2(7) , "DRNAME" VARCHAR2(50), "CREDIT" VARCHAR2(7) , "CRNAME" VARCHAR2(50),
Now I want that when I click on a button (create an insert) to create the first line with the default values below
So if I click on the button and then validate the second row with different values is also inserted on commit.
The value of the second row are like the picture below
But the second row should be invisible. It could be achieved by adding vc in the vo.
The difficult part in my question is therefore, to add the second row with the new default values.
Because I already added default values in the first row.
Now how to add second time default values.
Concerning
Mr President
I change the code given by expensive Sameh Nassar and get my results.
Thanks once again dear Sameh Nassar .
My code to get my goal is
First line of code is
protected void doDML(int operation, TransactionEvent e) { if(operation != DML_DELETE) { setAmount(getPurqty().multiply(getUnitpurprice())); } if (operation == DML_INSERT ) { System.out.println("I am in Insert with vid= " + getVid()); insertSecondRowInDatabase(getVid(),getLineitem(),"6010010","SALES TAX PAYABLE", (getPurqty().multiply(getUnitpurprice()).multiply(getStaxrate())).divide(100)); } if(operation == DML_UPDATE) { System.out.println("I am in Update with vid= " + getVid()); updateSecondRowInDatabase(getVid(), (getPurqty().multiply(getUnitpurprice()).multiply(getStaxrate())).divide(100)); } super.doDML(operation, e); } private void insertSecondRowInDatabase(Object value1, Object value2, Object value3, Object value4, Object value5) { PreparedStatement stat = null; try { String sql = "Insert into vdet (VID,LINEITEM,DEBIT,DRNAME,AMOUNT) values " + "('" + value1 + "','" + value2 + "','" + value3 + "','" + value4 + "','" + value5 + "')"; stat = getDBTransaction().createPreparedStatement(sql, 1); stat.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } finally { try { stat.close(); } catch (Exception e) { e.printStackTrace(); } } } private void updateSecondRowInDatabase(Object value1, Object value5) { PreparedStatement stat = null; try { String sql = "update vdet set AMOUNT='"+ value5+"' where VID='" + value1 + "'"; stat = getDBTransaction().createPreparedStatement(sql, 1); stat.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } finally { try { stat.close(); } catch (Exception e) { e.printStackTrace(); } } }
Second line code is inside a bean method
public void addNewPurchaseVoucher(ActionEvent actionEvent) { // Add event code here... BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry(); DCIteratorBinding dciter = (DCIteratorBinding) bindings.get("VoucherView1Iterator"); RowSetIterator rsi = dciter.getRowSetIterator(); Row lastRow = rsi.last(); int lastRowIndex = rsi.getRangeIndexOf(lastRow); Row newRow = rsi.createRow(); newRow.setNewRowState(Row.STATUS_NEW); rsi.insertRowAtRangeIndex(lastRowIndex +1, newRow); rsi.setCurrentRow(newRow); BindingContainer bindings1 = BindingContext.getCurrent().getCurrentBindingsEntry(); DCIteratorBinding dciter1 = (DCIteratorBinding) bindings1.get("VdetView1Iterator"); RowSetIterator rsi1 = dciter1.getRowSetIterator(); Row lastRow1 = rsi1.last(); int lastRowIndex1 = rsi1.getRangeIndexOf(lastRow1); Row newRow1 = rsi1.createRow(); newRow1.setNewRowState(Row.STATUS_NEW); rsi1.insertRowAtRangeIndex(lastRowIndex1 +1, newRow1); rsi1.setCurrentRow(newRow1); }
And final saveUpdate method is
public void saveUpdateButton(ActionEvent actionEvent) { // Add event code here... BindingContainer bindingsBC = BindingContext.getCurrent().getCurrentBindingsEntry(); OperationBinding commit = bindingsBC.getOperationBinding("Commit"); commit.execute(); OperationBinding operationBinding = BindingContext.getCurrent().getCurrentBindingsEntry().getOperationBinding("Commit"); operationBinding.execute(); DCIteratorBinding iter = (DCIteratorBinding) BindingContext.getCurrent().getCurrentBindingsEntry().get("VdetView1Iterator");// write iterator name from pageDef. iter.getViewObject().executeQuery(); }
Thanks for all the cooperation to obtain the desired results.
Concerning
-
First Row of the detail line VO iterator is null
With the help of the advanced table add row I found only the second time that a user adds a new record, I am unable to access the registration in the VO. This happens on a VO detail which I access via a master record of the VO. I'm trying to delete the record before it was recorded in the database by going to the line in the VO. But, as I said, the second time that a user performs these actions (adding record and then delete the folder) Nothing in retail VO.
I thought to use a named RowSetIterator, but I don't see how I can do since the accessor on the master VO returns a RowIterator. Any idea what can happen?
If (id == null: id.equals("")) {} XxmclApInvoiceLinesPOLinesVOImpl invLinesVO = (XxmclApInvoiceLinesPOLinesVOImpl) getXxmclApInvoiceLinesPOLinesVO1 (); XxmclApInvoiceLinesPOLinesVORowImpl invLinesVORow = (XxmclApInvoiceLinesPOLinesVORowImpl) invLinesVO.getFirstFilteredRow ("LineNumber", lineNumber); RowIterator rowIter = invLinesVORow.getXxmclApInvoiceLineDiscrepanciesVO (); XxmclApInvoiceLineDiscrepanciesVORowImpl invLineDiscRow = (XxmclApInvoiceLineDiscrepanciesVORowImpl) rowIter.first (); While (invLineDiscRow! = null) {} If (invLineDiscRow.getDiscrepancyId () == null & & ((invLineDiscRow.getDiscrepancyTypeCode () == null & & discrepancyTypeCode.equals("")) |)) invLineDiscRow.getDiscrepancyTypeCode ()! = null & & invLineDiscRow.getDiscrepancyTypeCode () .equals (discrepancyTypeCode))) {} invLineDiscRow.remove (); break; } invLineDiscRow = (XxmclApInvoiceLineDiscrepanciesVORowImpl) rowIter.next (); } rowIter.reset (); } Thank you
Try it below to get good detail View object.
ViewLinkImpl viewLink = (ViewLinkImpl) findViewLink ("XXXXVL1"); Find your link view Instance
ViewObject detailVo = viewLink.getDestination (); Make sure that the planned main line has been defined as the current of the Master View object line to get the exact details VO
Thank you
-
How to take the second row under the first line
Dear Sir
take my table like that name stock and times
STOCK Header 2 Header 3 A203 01:30 02:00 A203 02:40 03:00 A203 03:02 04:00 A203 05:00 06:00 the cry of output be like below
STOCK 1 2 3 A203 00:40 00:02 01:00 1 column is
02:40 - 02:00
column 2 is
03:02-03:00
column 3 is
05:00 - 04:00
Kind regards
Hello
You can use the analytical function of LEAD (or GAL) to get the difference between hours.
For the results in the form of 3 columns in 1 line (rather than 1 column on 3 rows) calculates the LEAD in a subquery. In the same auxiliary request, you can use the function ROW_NUMBER analytic number lines 1, 2 and 3. The main query then use this value to rotate out of the subquery.
Depending on your data, your needs and your version of Oracle, it will be something like this:
WITH got_analytics AS
(
SELECT stock
LEAD (header_2) (PARTITION OF BOUILLON
ORDER BY header_2
) - header_3 AS time_diff
ROW_NUMBER () (PARTITION OF BROTH
ORDER BY header_2
) AS r_num
FROM my_table
)
SELECT *.
OF got_analytics
PIVOT (MIN (time_diff)
FOR r_num (1, 2, 3)
)
;
I hope that answers your question.
If this isn't the case, please post a small example data (CREATE TABLE and only relevant columns, INSERT statements) and also publish outcomes from these data.
Explain, using specific examples, how you get these results from these data.
Make sure that your sample data reflect important aspects of your actual data. For example, in your actual data, you have probably different values in the column actions. 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#9362002
-
Greetings experts,
I use JDev 11.1.2.3
I am faced with a really strange behavior of the exportCollectionActionListener. I have a table for each row in this table, a link that calls a popUp. This popUp tells the story of this selected save changes (means it displays data from a different table/VO, who keeps a history of the first) in a table. I have a button that calls the exportCollection for this second table. When I press on it, an excel file is generated and downloaded and everything is perfect until now. If there was not any which record in this table, and o back to the first, by pressing the button send is not track all changes. But if there where all records from this table of history (always talking about the history of the current line), go back to the first and press on submit, that the very first line of the table of fir trees, gets all of it's values as the last row of the second table, as it is copied from one to the other. I have to press on restore back to normal (note that the popUp has it's CancelListener to call a restore of a bean to support operation).
Why is this happening?
Thanks in advance
I found a work around for this problem.
I added the code that causes the whole view Refresh (ie: the whole page), the popUp cancelListener, also I changed the commandLink partialSubmit property and set it to true. It's not like totally cool watching the screen charge for this fragment of a second after the closure of the pop-up window, but it not the drill.
-
Update lines with the info from the other rows in the same Table.
I'm trying to update the lines with the information of the same table. The table is loaded with information from a report that runs and there must be a new entry every month, but I would like to bring some of the info from the last month. This statement below works but updates all rows in the new load table and in my test case, I only did a few game only like 5 files need to get updates. It is an example of what I'm trying to do. If I add this (C2. COL_INVC_ID = C1. COL_INVC_ID) until the last "* where *" statement get an invalid identifier for 'C2 '. COL_INVC_ID ". So what I'm doing wrong here? How can I update only the lines where also in recent months run?
Thanks in advance for any help!
------------
Update OpenIssues OI1
Together (OI1. NUM, OI1. Status, OI1. Code, OI1. LastModifiedDate) =
(Select ios2. NUM, ios2. Status, ios2. Code, ios2. LastModifiedDate
Of OpenIssues ios2
Where OI2.num = OI1.num and ios2. TableLoadDate = TO_DATE (January 31, 2012 00:00:00 ',' ' the HH24: MI: SS DD/MM/YYYY)
)
Where and OI1. TableLoadDate = TO_DATE (February 29, 2012 00:00:00 ',' ' the HH24: MI: SS DD/MM/YYYY)
------------
SQLMeAs Frank suggested merger is much effective here, go...
create table temp as( select 1 eno, 1 amt , sysdate load_date from dual union all select 1 eno, 2 amt , add_months(sysdate,1) load_date from dual union all select 2 eno, 1 amt , sysdate load_date from dual union all select 2 eno, 2 amt , add_months(sysdate,1) load_date from dual ); merge into temp t using (select eno, amt, load_date from temp where trunc(Load_Date) = TO_DATE('05/30/2012', 'MM/DD/YYYY')) s on ((s.eno = t.eno) and trunc(t.Load_Date) = TO_DATE('06/30/2012', 'MM/DD/YYYY')) when matched then update set t.amt = s.amt; commit; select * from temp;
-
Add more than 2 lines for a select statement without inserting rows in the base table
Hi all
I have a below a simple select statement that is querying a table.
Select * from STUDY_SCHED_INTERVAL_TEMP
where STUDY_KEY = 1063;
but here's the situation. As you can see its return 7 ranks. But I must add
2 rows more... with everything else, default or what exist... except the adding more than 2 lines.
I can't insert in the base table. I want my results to end incrementing by 2 days in
measurement_date_Taken on 01-APR-09... so big measurement_date_taken expected to
end at study_end_Date...
IS IT STILL POSSIBLE WITHOUT INSERT ROWS IN THE TABLE AND PLAYIHY ALL AROUND WITH
THE SELECT STATEMENT?
Sorry if this is confusing... I'm on 10.2.0.3
Published by: S2K on August 13, 2009 14:19Well, I don't know if this request is as beautiful as my lawn, but seems to work even when ;)
I used the "simplified" version, but the principle should work for your table, S2K.
As Frank has already pointed out (and I fell on it while clunging): simply select your already existing lines and union them with the 'missing documents', you calculate the number of days that you are "missing" based on the study_end_date:MHO%xe> alter session set nls_date_language='AMERICAN'; Sessie is gewijzigd. Verstreken: 00:00:00.01 MHO%xe> with t as ( -- generating your data here, simplified by me due to cat and lawn 2 select 1063 study_key 3 , to_date('01-MAR-09', 'dd-mon-rr') phase_start_date 4 , to_date('02-MAR-09', 'dd-mon-rr') measurement_date_taken 5 , to_date('01-APR-09', 'dd-mon-rr') study_end_date 6 from dual union all 7 select 1063, to_date('03-MAR-09', 'dd-mon-rr') , to_date('04-MAR-09', 'dd-mon-rr') , to_date('01-APR-09', 'dd-mon-rr') from dual union all 8 select 1063, to_date('03-MAR-09', 'dd-mon-rr') , to_date('09-MAR-09', 'dd-mon-rr') , to_date('01-APR-09', 'dd-mon-rr') from dual union all 9 select 1063, to_date('03-MAR-09', 'dd-mon-rr') , to_date('14-MAR-09', 'dd-mon-rr') , to_date('01-APR-09', 'dd-mon-rr') from dual union all 10 select 1063, to_date('03-MAR-09', 'dd-mon-rr') , to_date('19-MAR-09', 'dd-mon-rr') , to_date('01-APR-09', 'dd-mon-rr') from dual union all 11 select 1063, to_date('22-MAR-09', 'dd-mon-rr') , to_date('23-MAR-09', 'dd-mon-rr') , to_date('01-APR-09', 'dd-mon-rr') from dual union all 12 select 1063, to_date('22-MAR-09', 'dd-mon-rr') , to_date('30-MAR-09', 'dd-mon-rr') , to_date('01-APR-09', 'dd-mon-rr') from dual 13 ) -- actual query: 14 select study_key 15 , phase_start_date 16 , measurement_date_taken 17 , study_end_date 18 from t 19 union all 20 select study_key 21 , phase_start_date 22 , measurement_date_taken + level -- or rownum 23 , study_end_date 24 from ( select study_key 25 , phase_start_date 26 , measurement_date_taken 27 , study_end_date 28 , add_up 29 from ( 30 select study_key 31 , phase_start_date 32 , measurement_date_taken 33 , study_end_date 34 , study_end_date - max(measurement_date_taken) over (partition by study_key 35 order by measurement_date_taken ) add_up 36 , lead(measurement_date_taken) over (partition by study_key 37 order by measurement_date_taken ) last_rec 38 from t 39 ) 40 where last_rec is null 41 ) 42 where rownum <= add_up 43 connect by level <= add_up; STUDY_KEY PHASE_START_DATE MEASUREMENT_DATE_TA STUDY_END_DATE ---------- ------------------- ------------------- ------------------- 1063 01-03-2009 00:00:00 02-03-2009 00:00:00 01-04-2009 00:00:00 1063 03-03-2009 00:00:00 04-03-2009 00:00:00 01-04-2009 00:00:00 1063 03-03-2009 00:00:00 09-03-2009 00:00:00 01-04-2009 00:00:00 1063 03-03-2009 00:00:00 14-03-2009 00:00:00 01-04-2009 00:00:00 1063 03-03-2009 00:00:00 19-03-2009 00:00:00 01-04-2009 00:00:00 1063 22-03-2009 00:00:00 23-03-2009 00:00:00 01-04-2009 00:00:00 1063 22-03-2009 00:00:00 30-03-2009 00:00:00 01-04-2009 00:00:00 1063 22-03-2009 00:00:00 31-03-2009 00:00:00 01-04-2009 00:00:00 1063 22-03-2009 00:00:00 01-04-2009 00:00:00 01-04-2009 00:00:00 9 rijen zijn geselecteerd.
Is there a simpler way (in SQL), I hope that others join, and share their ideas/example/thoughts.
I feel that it is using more resources there.
But I have to cut the daisies before now, they interfere my 'grass-green-ess";) -
TKPROF output - lines processed / rows in the table anomaly?
Hello
TKPROF confusion for me more...
Oracle 10.2.0.4 on Windows Server 2003.
I formatted my Trace SQL with TKPROF file and the first query that I am focusing me causes some confusion. It's here (the names have been changed to protect the innocent, but everything remains intact):
What confuses me is that 'lines' (column 'lines' for the operation "Fetch" = * 260371 *, also 'lines' in the 'line Source operation' and "The execution Plan" = * 260371 *).******************************************************************************** SELECT A.COL1, A.COL2, MIN(A.COL3) AS COL_SYNONYM FROM OUR_TABLE A WHERE NVL(A.COL4, NVL(:B4 , -1)) = NVL(:B4 , NVL(A.COL4, -1)) AND NVL(A.COL5, NVL(:B3 , -1)) = NVL(:B3 , NVL(A.COL5, -1)) AND A.COL6 = NVL(:B2 , A.COL6) AND A.COL7 = NVL(:B1 , 1) GROUP BY A.COL1, A.COL2 ORDER BY A.COL1, A.COL2 call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 1 0.00 0.00 0 0 0 0 Execute 83 0.01 0.01 0 0 0 0 Fetch 83 1.01 1.11 12 3154 0 260371 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 167 1.03 1.13 12 3154 0 260371 Misses in library cache during parse: 0 Optimizer mode: ALL_ROWS Parsing user id: 148 (OUR_SCHEMA) (recursive depth: 2) Rows Row Source Operation ------- --------------------------------------------------- 260371 SORT GROUP BY (cr=3154 pr=12 pw=0 time=956798 us) 260371 CONCATENATION (cr=3154 pr=12 pw=0 time=1072560 us) 260371 FILTER (cr=3154 pr=12 pw=0 time=630121 us) 260371 TABLE ACCESS FULL OUR_TABLE (cr=3154 pr=12 pw=0 time=306867 us) 0 FILTER (cr=0 pr=0 pw=0 time=201 us) 0 TABLE ACCESS FULL OUR_TABLE (cr=0 pr=0 pw=0 time=0 us) Rows Execution Plan ------- --------------------------------------------------- 0 SELECT STATEMENT MODE: ALL_ROWS 260371 SORT (GROUP BY) 260371 CONCATENATION 260371 FILTER 260371 TABLE ACCESS MODE: ANALYZED (FULL) OF 'OUR_TABLE' (TABLE) 0 FILTER 0 TABLE ACCESS MODE: ANALYZED (FULL) OF 'OUR_TABLE' (TABLE) Elapsed times include waiting on following events: Event waited on Times Max. Wait Total Waited ---------------------------------------- Waited ---------- ------------ db file scattered read 2 0.01 0.02 ********************************************************************************
Actual number of rows in the table = * 3138 *.
I think that because we have performed 83 times, then the value of "lines" should be:
83 x number_of_rows_in_table = 83 x 3138 = * 260454 *.
What we have is 260371, who looks like me:
3137 = 83 x 83 x ( number_of_rows_in_table - 1 )
I misinterpreted the news (I guess I!)?
Why seems to be number_of_rows_in_table - 1 ? (Or is it pure coincidence?)
Kind regards
ADOSThat remains a record satisfied with the given list of a predicate in the WHERE clause?
If this isn't the case, then I don't see anything wrong here.
-
View the information from the related table instead of the ID in several line datablock
Hello
I searched on the web, the forum and the documentation, but I have not found a solution to this problem:
I have two tabs with a relationship of the master / detail of one-to-many. Block detail data shows several lines such that it can be several associations table of mater in the details and I want to display the description of the master data block instead of the field with the ID for each line in the block of retail.
I tried to place an item with the option 'copy value', but then I lose the relationship of master / detail, because that is what forms wih the field id for linking blocks.
Also, I've seen in other posts that I can use a view, but I can't understand how would I update or remove data then.
The only thing that I realized is to the description field in its own datablock in the same tab, a relationship master / detail-detail (or master-detail-master). BTW, I don't think it's beautiful "formulas"programming"and it does too much for my needs."
I guess it must be a trivial thing, but I don't know what to try next. Thanks in advance!
Published by: user10278211 on Sep 17, 2008 20:13AAH, I think now I got your management!
You have 1 Deptno and dname "XYZ" in the master and you want to display:
EmpNo Ename DName 1 User1 XYZ 2 User2 XYZ
-What?
If so:
1 create a new element in the retail block, let's call it DSP_DNAME, set database property to point to 'no '.
2. create a POST-QUERY-Trigger on detail-block with the code: DETAILBLOCKNAME. DSP_DNAME: =: MASTERBLOCKNAME. DNAME;
3. create WHEN-CREATE-RECORD-Trigger with the same code.That's all
-
How to create a static row in the bar graph line in obiee 11g?
Hello
I have a requirement where the user wants to see a line in the bar chart.
Now, the line is just static, we have not available to draw the graphic line of data field.
is there a way to create a static line in the chart and display it in the graphic line of bar ombo?Thanks in advance...
for example, I have created static line '10' on the Forex and now using this column as line by line bar report, but it is not showing the extent of '10' line in the graph.
Drag the column measures section of the graph (line - Vertical axis) to change this static value to create a prompt box edit and pass the value to the column using Variable presentation (as told by Fernando)
Thank you
Angelique
Maybe you are looking for
-
HP Deskjet 1511 all-in-one: paper size custom unsupported: 1511 HP all-in-one
HELPPPP! The problem... Personalized my paper size: 10.7 x 13.9 cm (close to 4 x 6, but it is not). I need to create the MS Word template so I can print on these fill-in guest: http://paperprovision.com/product/champagne-hors-doeuvres-invite-set/ Her
-
Cannot activate windows 7 - accepted not Legit "Application not found" license key
I have an old Alienware m17x R1 with a copy of Windows 7 Home Premium Service Pack 1 installed. I bought it for the birthday of my son out of craigslist in July 2012. He had so many things about it I not rub and the operating system was already autho
-
Set a password after the start-up of a desktop computer
You can set a password on a computer (desktop) after he started alread? Lets say someone didn't use it for about 15 minutes, can u make it ask for a password before you use it again?
-
Extract information from a form of Muse
I'm looking for a way to extract information from a muse of. The form is a type of query. ID like to be able to take emails all receipts and pull so that the names, email, zip code things like that and put it in a file pdf or something similar if it
-
CS 5.5 on Windows [subject edited by Moderator] 10
Hi, I have contacted just adobe support and said that he will not work on windows 10 CS5.5. Apparently it has not been tested yet. Anyone having the same questions or have a solution?