Sql query for report?
Hi all
I have one big table with column:
code,street,data_type,credit,debt,saldo,date
I was creating query like
select sum(saldo),code from tableA where data_types=1 and date <'201010' group by code
but cant expand this query to be as report like
COLUMN1 COLUMN2 COLUMN3 COLUMN4
sum(saldo) -where type=1 and date = '201201', sum(saldo) where type=2, sum(saldo) where date ='201205' , code
whats best solution to report sums for diferent data_types on one line with just one code per lines?
regards
Gordan
Edited by: useruseruser on May 14, 2013 10:52 AM
Hi,
something like this?
WITH mydata AS
SELECT 2 code, 1 data_type, TO_DATE('01/01/2012','DD/MM/YYYY') dt, 100 saldo FROM DUAL UNION ALL
SELECT 2 code, 2 data_type, TO_DATE('01/02/2012','DD/MM/YYYY') dt, 50 saldo FROM DUAL UNION ALL
SELECT 2 code, 2 data_type, TO_DATE('01/03/2012','DD/MM/YYYY') dt, 40 saldo FROM DUAL UNION ALL
SELECT 2 code, 2 data_type, TO_DATE('01/04/2012','DD/MM/YYYY') dt, 80 saldo FROM DUAL UNION ALL
SELECT 2 code, 2 data_type, TO_DATE('01/05/2012','DD/MM/YYYY') dt, 50 saldo FROM DUAL UNION ALL
SELECT 5 code, 1 data_type, TO_DATE('01/01/2012','DD/MM/YYYY') dt, 200 saldo FROM DUAL UNION ALL
SELECT 5 code, 2 data_type, TO_DATE('01/02/2012','DD/MM/YYYY') dt, 175 saldo FROM DUAL UNION ALL
SELECT 5 code, 1 data_type, TO_DATE('01/03/2012','DD/MM/YYYY') dt, 300 saldo FROM DUAL UNION ALL
SELECT 5 code, 2 data_type, TO_DATE('01/04/2012','DD/MM/YYYY') dt, 85 saldo FROM DUAL UNION ALL
SELECT 5 code, 2 data_type, TO_DATE('01/05/2012','DD/MM/YYYY') dt, 85 saldo FROM DUAL
SELECT SUM(CASE
WHEN data_type=1 AND TO_CHAR(dt,'YYYYMM')='201201'
THEN saldo
END) col1
, SUM(CASE
WHEN data_type=2
THEN saldo
END) col2
, SUM(CASE
WHEN TO_CHAR(dt,'YYYYMM')='201205'
THEN saldo
END) col2
, code
FROM mydata
GROUP BY code;
COL1 COL2 COL2_1 CODE
100 220 50 2
200 345 85 5It's considered a good practice to mark questions as answered when the answers are satisfying your question or provide additional details.
You seem to have a lot of questions unresolved:
Handle: useruseruser
Status Level: Newbie (5)
Registered: Jun 25, 2007
Total Posts: 468
Total Questions: 75 (49 unresolved) Are they really all without answer?
Regards.
Al
Edited by: Alberto Faenza on May 14, 2013 11:10 AM
Code changed as initial post changed
Similar Messages
-
Help with PL/SQL returning SQL query for Report
Hi
I have got a report which I have formatted as PL/SQL function body returning SQL query.
I have the following code
declare
q VARCHAR2(32000); -- query
w VARCHAR2(4000) ; -- where clause
begin
q := 'select min(identified_date) first_identified,' ||
' max(actual_resolution_date) last_closed,' ||
' count("HELPDESK_CALL_ID) total_issues,' ||
' from tbl_helpdesk_calls';
if :P9_call_type != '-1' then
w := 'HELPDESK_CALL_TYPE_ID = :P9_call_type';
end if;
q := q || ' WHERE '|| w;
return q;
end;
When I apply changes I get this error message
Query cannot be parsed within the Builder. If you believe your query is syntactically correct, check the ''generic columns'' checkbox below the region source to proceed without parsing. ORA-00972: identifier is too long
Any Idea where I maybe going wrong?thanks its compiling now but when I run the page I get this error message in the reports region
failed to parse SQL query:
ORA-00933: SQL command not properly ended
This is my code that I have at the momment.
declare
q VARCHAR2(32000); -- query
w VARCHAR2(4000) ; -- where clause
we VARCHAR2(1) := 'N'; -- identifies if where clause exists
begin
q := 'select min(identified_date) first_identified,' ||
' max(actual_resolution_date) last_closed,' ||
' count(HELPDESK_CALL_ID) total_issues,' ||
' sum(decode(status,''Open'',1,0)) open_issues, ' ||
' sum(decode(status,''On-Hold'',1,0)) onhold_issues,' ||
' sum(decode(status,''Closed'',1,0)) closed_issues,' ||
' sum(decode(status,''Open'',decode
(priority,''High'',1,0),0)) open_high_prior,' ||
' sum(decode(status,''Open'',decode
(priority,''Medium'',1,0),0)) open_medium_prior, '||
' sum(decode(status,''Open'',decode
(priority,''Low'',1,0),0)) open_low_prior '||
' from tbl_helpdesk_calls';
if :P9_call_type != '-1' then
w := 'where HELPDESK_CALL_TYPE_ID = :P9_call_type';
we := 'Y';
end if;
if we = 'Y' then
q := q ||w;
end if;
return q;
end;
I have a select list with a list of reports. what I am trying to do build an sql depending on what the :p9_call_type value is. -1 represents the display value of -All Reports- so if the user selects all reports it should display all results thus removing the where clause. However as my code stands when I user clicks on all reports he get the correct results for all reports. If the user selects anything else they get the error message above. -
Dynamic sql query for report based on user input
Hi everyone,
I have built custom search fields (name, date born, gender etc.) in the search region and in the results region a report need to be displayed.
Now I'm not very experienced with Apex or Oracle sql, but could anyone telll me how to first check if a user filled in a field and then build a query based upon what field the user filled in to submit.
Any help would be appreciated, thanks in advance.
regards,
Cleo
Edited by: Cleopatra on Jan 18, 2011 5:51 AMHi, Cleopatra. Welcome to OTN!
If you don't have too many fields instead of checking to see if they're filled in you can use OR conditions in yoru WHERE_CLAUSE to check for NULLS to ignore NULLS, something like (you will have to test this carefully!)
AND some_column = NVL(:P24_1,some_column)the idea being that if the field is NULL then the column will match itself - in this case assuming the column itself does not have a null value -
Get a insert session value for SQL query at report
Hi friends
I created a global temp table and procedure to support web search form.
and a search result report. The procudure
gets search result from multip tables and
insert into temp table --recordsearch. I can get value from temp table by call procedure
at SQL*Plus.
However, I can not get this value by web report.
How can I get this insert session value and pass to SQL query for report?
Thanks,
Newweb
CREATE GLOBAL TEMPORARY TABLE recordsearch
(emp_id VARCHAR2(200),
ssn VARCHAR2(9),
fname VARCHAR2(200),
lname VARCHAR2(200),
m_name VARCHAR2(200)
) ON COMMIT PRESERVE ROWS;it possible that your web form does not have a persistent, dedicated connection. if you have connection pooling for example, multiple sessions will see the same instance of the GTT, so if one deletes it, then nobody sees it (or you can see others data). if the connections are not persistent, then they can disconnect between calls, deleting the GTT table.
-
Update Field On Change For A SQL Query (updateable report)
Hi,
I'd like to request help from anyone with ideas on how to solve this.
We are using APEX 4.2, 10GR2, RedHat5.
I have a report that comes from SQL Query (updateable report).
I'm using the apex_item.text and apex_item.hidden on fields.
I'm using a button to submit and after submit process to add some logic that I need.
There could be 1 - 10 records in the report.
There is only 1 field that is needed to enter a value, but the value of this field determines the value of another field.
I think that I can do this with a submit button and an after submit process where I loop through all the records. I think I have this handled.
This is the question
When the value of that field is changed then the value of another field in the same row changes immediately.
Is this possible?
All the examples I've seen so far are for a single record and that doesn't work for us.
I guess this is a MRU process but I haven't seen an example where a dynamic action is possible on a Multi Row Update.
Could anyone direct me to where I can see an example or help me get directions?
I appreciate all your help an comments and I thank you in advance.Yes why not...what you looking for is a ajax call
See {message:id=10390979}
Please note:-you can also do this as a dynamic action as shown below
Event: Change
Selection type: jQuery Selector
jQuery Selector: input[name="f01"]
True action with Execute JavaScript Code and put all code inside the test funtion, you may need to amend the code to use this.triggeringElemnt in place of this -
Extracting the Logical sql query for the specified report in OBIEE 11g
Hi ,
I want to extract the logical SQL Query for the Particular report in OBIEE 11.1.1.5.
Any pointers related to this will be very helpful.
Thanks,
Sonalifor a try please add Logical sql view to ur report it will dispaly the Logical sql for that Report..
Hope it will helps you. -
Create a validation for SQL Query (updateable report)
Hello
I have a need for creating a validation on a SQL Query (updateable report)- type region
1)
When a row get populated i don't want same values to be populated in the second row.(as shown in first 2 rows)
Also, I don't want to have a value that falls in range in between 100 and 1000 for the period falls in the previous. (as shown in third row)
i.e
Type_id
Lower_Limit Upper_Limit Date_From Date _To
1
100 1000 1/1/2013 12/31/2013
2
100 1000 1/1/2013 12/31/2013
3
101 500 2/1/2013 10/31/2013
appreciate any help
thanks
kpThis example could help:
http://apex.oracle.com/pls/otn/f?p=31517:214
Denes Kubicek
http://deneskubicek.blogspot.com/
http://www.opal-consulting.de/training
http://apex.oracle.com/pls/otn/f?p=31517:1
------------------------------------------------------------------- -
SQL Query (updateable report) Region - Conditionally Hide and Set Values
SQL Query (updateable report) Region - Conditionally Hide and Set Values
Outline of requirement :-
Master / Detail page with Detail updated on same page using SQL Query (updateable report).
The detail region has the following source
SELECT item_id,
contract_id,
CASE WHEN hardware_id IS NOT NULL THEN
'HA'
WHEN backup_dev_id IS NOT NULL THEN
'BD'
WHEN hardware_os_id IS NOT NULL THEN
'HS'
END item_type,
hardware_id,
backup_dev_id,
hardware_os_id
FROM "#OWNER#".support_items
WHERE contract_id = :P26_CONTRACT_IDThe table support_items implements arced relationships and has the following columns
CREATE TABLE SUPPORT_ITEMS
ITEM_ID NUMBER NOT NULL,
CONTRACT_ID NUMBER NOT NULL,
HARDWARE_ID NUMBER,
BACKUP_DEV_ID NUMBER,
HARDWARE_OS_ID NUMBER
)A check type constaint on support_items ensures that only one of the fk's is present.
( hardware_id IS NOT NULL
AND backup_dev_id IS NULL
AND hardware_os_id IS NULL
OR ( hardware_id IS NULL
AND backup_dev_id IS NOT NULL
AND hardware_os_id IS NULL
OR ( hardware_id IS NULL
AND backup_dev_id IS NULL
AND hardware_os_id IS NOT NULL
) Hardware_Id is a FK to Hardware_Assets
Backup_dev_id is a FK to Backup_Devices
Hardware_os_id is a FK to Hardware_op_systems
The Tabular Form Element based on item_type column of SQL query is Displayed As Select List (based on LOV) referencing a named list of values which have the following properties
Display Value Return Value
Hardware Asset HA
Backup Device BD
Computer System HSThe Tabular Form Elements for the report attributes for hardware_id, backup_dev_id and hardware_os_id are all Displayed As Select List (Based on LOV).
What I want to do is only display the Select List for the FK depending on the value of the Select List on Item Type, e.g.
Item_Type is 'HA' then display Select List for hardware_id, do not display and set to NULL the Select Lists for backup_dev_id and hardware_os_id.
Item_Type is 'BB' then display Select List for backup_dev_id, do not display and set to NULL the Select Lists for hardware_id and hardware_os_id.
Item_Type is 'HS' then display Select List for hardware_os_id, do not display and set to NULL the Select Lists backup_dev_id and hardware_id.
There are properties on elements to conditionally display it but how do we reference the values of the SQL query Updateable region? they are not given a page item name?
Also on the Tabular For Elements there is an Edit tick against a report item - however when you go to the Column Attributes there is not a property with which you can control the Edit setting.
What's the best way of implementing this requirement in APEX 3.1?
Thanks.>
Welcome to the forum: please read the FAQ and forum sticky threads (if you haven't done so already), and update your profile with a real handle instead of "user13515136".
When you have a problem you'll get a faster, more effective response by including as much relevant information as possible upfront. This should include:
<li>Full APEX version
<li>Full DB/version/edition/host OS
<li>Web server architecture (EPG, OHS or APEX listener/host OS)
<li>Browser(s) and version(s) used
<li>Theme
<li>Template(s)
<li>Region/item type(s) (making particular distinction as to whether a "report" is a standard report, an interactive report, or in fact an "updateable report" (i.e. a tabular form)
With APEX we're also fortunate to have a great resource in apex.oracle.com where we can reproduce and share problems. Reproducing things there is the best way to troubleshoot most issues, especially those relating to layout and visual formatting. If you expect a detailed answer then it's appropriate for you to take on a significant part of the effort by getting as far as possible with an example of the problem on apex.oracle.com before asking for assistance with specific issues, which we can then see at first hand.
I have a multi-row region that displays values and allows entries in a number of fields.Provide exact details of how this has been implemented. (An example on apex.oracle.com is always a good way to do this.)
I should like the fields to be conditional in that they do not permit entry, but still display, if certain conditions apply (e.g. older rows greyed out). Can this be done? Almost anything can be done, often in multiple ways. Which are appropriate may be dependent on a particular implementation, the skills available to implement it, and the effort you're willing to expend on it. Hence it's necessary to provide full details of what you've done so far... -
Problem writing a sql query for a select list based on a static LOV
Hi,
I have the following table...
VALIDATIONS
ID Number (PK)
APP_ID Number
REQUESTED Date
APPROVED Date
VALID_TIL Date
DEPT_ID Number (FK)
I have a search form with the following field item variables...
P11_DEPT_ID (select list based on dynamic LOV from depts table)
P11_VALID (select list based on static Yes/No LOV)
A report on the columns of the Validations table is shown based on the values in the search form. So far, my sql query for the report is...
SELECT v.APP_ID,
v.REQUESTED,
v.APPROVED,
v.VALID_TIL,
d.DEPT
FROM DEPTS d, VALIDATIONS v
WHERE d.DEPT_ID = v.DEPT_ID(+)
AND (d.DEPT_ID = :P11_DEPT_ID OR :P11_DEPT_ID = -1)
This query works so far. My problem is that I don't know how to do a search based on the P11_VALID item - if 'yes' is selected, then the VALID_TIL date is still valid. If 'no' is selected then the VALID_TIL date has passed.
Can anyone help me to extend my query to include this situation?
Thanks.Hello !
Let's have a look at my example:create table test
id number
,valid_til date
insert into test values( 1, sysdate-3 );
insert into test values( 2, sysdate-2 );
insert into test values( 3, sysdate-1 );
insert into test values( 4, sysdate );
insert into test values( 5, sysdate+1 );
insert into test values( 6, sysdate+2 );
commit;
select * from test;
def til=yes
select *
from test
where decode(sign(trunc(valid_til)-trunc(sysdate)),1,1,0,1,-1)
=decode('&til','yes',1,-1);
def til=no
select *
from test
where decode(sign(trunc(valid_til)-trunc(sysdate)),1,1,0,1,-1)
=decode('&til','yes',1,-1);
drop table test; It's working fine, I've tested it.
The above changes to my first idea I did because of time portion of the DATE datatype in Oracle and therefore the wrong result for today.
For understandings:
1.) TRUNC removes the time part of DATE
2.) The difference of to date-values is the number of days between.
3.) SIGN is the mathematical function and gives -1,0 or +1 according to an negative, zero or positiv argument.
4.) DECODE is like an IF.
Inspect your LOV for the returning values. According to my example they shoul be 'yes' and 'no'. If your values are different, you may have to modify the DECODE.
Good luck,
Heinz -
Sql query in report/source
Is possible use this kind of select select a,(select b from b) from b
in sql query in report/source?Pretty much any valid select statement can be used.
If it works in SQL*Plus, then it should work in Application Express.
I think your example would not be valid if table b has more than one row.
A scalar subquery (like your "select b from b") must only return a single value.
SQL> select ename, (select job from emp) from emp e;
ORA-01427: single-row subquery returns more than one rowIf your subquery can be restricted to return one value, then it should work.
SQL> select ename, (select job from emp where empno = e.empno) job from emp e;
ENAME JOB
KING PRESIDENT
BLAKE MANAGER
CLARK MANAGER
JONES MANAGER
SCOTT ANALYST
FORD ANALYST
SMITH CLERK
ALLEN SALESMAN
WARD SALESMAN
MARTIN SALESMAN
TURNER SALESMAN
ADAMS CLERK
JAMES CLERK
MILLER CLERK
14 rows selectedBut is that the kind of result you were looking for? -
How to add a parameter to sql query in report
Hi
How to add a parameter to sql query in report.
Parameter is from Visual studio
example:
select * from tab1 where dl=parameter???
I have VS 2008 prof CR XI R2, mysqlHello,
If you have this API available then you can modify the record selection formulae in code to add filtering:
string recordSelectionFormula = "{T_INV_RPT_ADDR.IND_PROMUS} = {?P_PROMUS?} AND {T_INV_RPT_POINT.INVOICE_DATE} = DATE(2008, 05, 31) AND {T_INV_RPT_POINT.CHECKOUT_DATE} = date(2008, 04,29)";
CrystalDecisions.CrystalReports.Engine.ReportDocument.RecordSelectionFormula = recordSelectionFormula;
You have to format and follow the rules as in the Designer so not too much work to get this to work.
CR for .NET may not have the ability so you will need to upgrade to a Developer version of Crystal Reports.
Thank you
Don -
APEX 4.1, SQL Query(Updateable report), Validation issue.
Hi,
I am using APEX 4.1.
I have SQL Query(Updateable report), we have created validation for the columns in this report.
The validations are working properly only for the first row of the report on submitting, the remaining rows are not getting validated.
If we check mark the rows it will get validated, but we want the validation to happen without checkmarking, on all the rows on clicking submit button.
Can someone help me to fix this issue?
Thanks in advance.
Thanks & regards,
Ravi.Hi Ravi,
Welcome to Oracle Forums!
Please acquaint yourself with the FAQ and forum etiquette if you haven't already done so.
Always state
<ul>
<li>Apex Version</li>
<li>DB Version and edition</li>
<li>Web server used.I.e. EPG, OHS, ApexListner Standalone or with J2EE container</li>
<li>When asking about forms always state tabular form if it is a tabular form</li>
<li>When asking about reports always state Classic / IR</li>
<li>Always post code snippets enclosed in a pair of {code} tags as explained in FAQ</li>
</ul>
I am using APEX 4.1.I have SQL Query(Updateable report), we have created validation for the columns in this report.
The validations are working properly only for the first row of the report on submitting, the remaining rows are not getting validated.
If we check mark the rows it will get validated, but we want the validation to happen without checkmarking, on all the rows on clicking submit button.
Can someone help me to fix this issue?
>
Post your validation code with some explanations of what the g_fnn are.
Cheers, -
Problem With SQL Query (updateable report)
Hi,
I have a report which I have set as type 'SQL Query (updateable report)'. I have added a 'row selector' to the report but when I run it I get the following error message:
failed to parse SQL query:
ORA-00904: "COL60": invalid identifier
The report works fine if I remove the row selector. Any ideas as to why the error is being produced?
Cheers
SimonI don't have the apex_application.g_f01(i) referenced in the page source...In the page source you wouldn't find anything by that name
Identify the tabular form's checkbox column in the page(firebug/chrome developer panel makes this easy)
It should be like
<input id="..." value="" type="checkbox" name="fXX" >we are interested in the name attribute , get that number (between 01 and 50)
Replace that number in the code, for instance if it was f05 , the code would use
apex_application.g_f05
--i'th checked record' primary keyWhen you loop through a checkbox array, it only contains the rows which are checked and it is common practice to returns the record's primary key as the value of the checkbox(available as the the i'th array index as apex_application.g_f05(i) , where i is sequence position of the checked row) so that you can identify the record. -
Setting the cell width in a Tabular Form (SQL Query (updateable report) )
version 3.2.1
I have a Tabular Form (SQL Query (updateable report) ) and I have a column that is a VARCHAR2(4000) that when displayed extends the cell to the full length (which of course makes sense).
How can I set the width of this cell to something like 30 or 50 and wrap the contents?
Thanks,
JoeScott,
Thank you for replying.
Your suggestion kinda worked. I say kinda because when the report is first displayed the cell is the full width and appears to ignore the width setting. There is a Select List on the report to restrict some of the data that is displayed. When a selection is made from this Select List, it appears that the cell width is then adjusted to what was set, but not for every selection from this Select List.
I made the width entry in Tabular Form Element - Element Width
Any idea why the width setting is ignored?
Thanks,
Joe -
SQL Query updateable report with row selector. Update process.
I have a SQL Query updateable report with the row selector(s).
How would I identify the row selector in an update process on the page.
I would like to update certain columns to a value of a select box on the page.
Using the basic:
UPDATE table_name
SET column1=value
WHERE some_column=some_value
I would need to do:
UPDATE table_name
SET column1= :P1_select
WHERE [row selector] = ?
Now sure how to identify the [row selector] and/or validate it is checked.
Thanks,
BobI don't have the apex_application.g_f01(i) referenced in the page source...In the page source you wouldn't find anything by that name
Identify the tabular form's checkbox column in the page(firebug/chrome developer panel makes this easy)
It should be like
<input id="..." value="" type="checkbox" name="fXX" >we are interested in the name attribute , get that number (between 01 and 50)
Replace that number in the code, for instance if it was f05 , the code would use
apex_application.g_f05
--i'th checked record' primary keyWhen you loop through a checkbox array, it only contains the rows which are checked and it is common practice to returns the record's primary key as the value of the checkbox(available as the the i'th array index as apex_application.g_f05(i) , where i is sequence position of the checked row) so that you can identify the record.
Maybe you are looking for
-
How do I restrict my pdf form to print legal only
I have a form (in Acrobat 9 Pro) that should only be printed on legal. I am unable to locate information. Have tried setting the Adobe PDF Document Properties (Page Size) to legal. Is there a way to limit to printing legal only?? Would appreciate any
-
How to use a sleep timer with iTunes
I just whipped up a little sleep timer for iTunes on request, and wanted to make it available to anyone who was looking for a way to listen to iTunes for a set amount of time and then have it paused (instead of having to make a playlist of a particul
-
Can anyone help me to re-install elements 6? I have it sat on the hard drive of an old machine which has a motherboard failure. I have the serial no, and I have a hard drive caddy. What do I do?
-
ORACLE error from auxiliary database: ORA-01152: file 2 was not restored fr
Hello, i'm trying to clone a database. It is in archive log mode. I took a full back using below command run { backup tag 'DAILY_WHOLE' format 'FULL_backup_%s_%p_%c.bkp' database plus archivelog tag 'DAILY_WHOLE' delete
-
Font color against dark font backgrounds changing to white in Word 2010
Hello. I am a long-time Word and VBA user and have been experiencing a problem with Word 2010 wherein font colors against a dark font background color always appear, and print, as if they had been set to white. By contrast, Word 2007 would retain w