Query on Dynpages
Hi
I have created an application for password change using dynpages.....In that I want to display 4 rules for the password.....But I am having a problem of inserting a blank line in between ..Could some one please help me on how to skip a line
Regards
Krishna
Hi,
In that code use line break (br) used in html with angle brackets (<break>)inside the myForm.addRawText( )in double quotes. Actually that is not visible in the previous reply because of some problem in displaying the code.
i am not able to give the exact code clearly due to this problem .so please understand from this.or if u r not able to understand give ur mail id i will give u there.
Regards,
Tamil K
Message was edited by:
Tamil Venthan
Similar Messages
-
Help on calling a dynpage on click of a URL
hi all,
I have a iview of a jspdynpage and it contains a url link as below..
http://amsdc2-s-917.europe.shell.com/irj/servlet/prt/portal/prtroot/com.shell.ep.siep.sapportals.service.c000326_login_management_client.default?id=0&targeturl=http://sww-jen.shell.com/
And once i click this url link, i need to invoke a dynpage component and from the request object i need to read the "targetURL" parameter in the above url ...
In my doInitization method of dynpage i have the below code
IPortalComponentRequest request = (IPortalComponentRequest) this.getRequest();
this.targetURL = request.getParameter(targetURL);
I want to know how to match the url link with the request object of my dynpage...
Plz help me as i am stuck in this point for a long time.
Thanks and Regards,
SivaHi Siva,
If you mean that you have parameters included into targetURL like this
targetURL=http%3A%2F%2Fsww-jen.shell.com%3Fparam1%3Dvalue1%26param2%3Dvalue2
and your question is how to get them, you will need to get targetURL parameter first, then to get the query string from the URL and tokenize it with String.split method (see JDK 1.4.2 documentation on how to use it)
String targetURL = componentRequest.getParameter("targetURL");
URL url = new URL(targetURL);
String queryString = url.getQuery();
//parse the query string
Regards,
Dmitry -
JSP Dynpage iView 'Open in New Window' losses session data
Hi All,
I have a JSP Dynpage that displays some position holder information based on a position id passed in by the URL query string. The problem that I am trying to solve is to allow the user to open the iView in its own window by using the 'Open in New Window' option from the button in the upper right of the iView title bar. When this happens the URL query string is no longer available so the iView has problems. My solution is to store the position id in the session object then read from that session object when the query string is not available - when opening in a new window.
But what is happening is that the position id saved in the session object is no longer there when the new window opens. I have looked else where on this site but all posts seem to deal with data transfer from JSP Dynpage to the JSP page. This issue is dealing with a page getting re-opened in a new page (browswer).
I can't seem to get the session object to work between JSP Dynpages at all, I would think that the data put into the session would stay there untill either cleared or the session ends. Am I missing some configuration settings? I have included some of the key code below.
// GET THE POSITION ID FROM THE URL QUERY STRING
String PosId;
PosId = request.getParameter("CKey");
if (PosId == null)
myBean.testing = (String) request.getComponentSession().getValue("PosId");
else
PosId = PosId.substring(6, 14);
request.getComponentSession().putValue("PosId", PosId);
myBean.testing = "POSID:" + PosId;
Thanks for all ideas and help.
DonAll of this logic is within the doProcessBeforeOutput event. Here is all my java code and JSP...
<%@ taglib uri="tagLib" prefix="hbj" %>
<hbj:content id="myContext" >
<hbj:page title="PageTitle">
<hbj:form id="myFormId" >
<jsp:useBean id="myBean" scope="application" class="MSSBeanPackage.HolderDetailBean"></jsp:useBean>
<% response.write("<br>xxxx-" + myBean.testing + "-zzzz<br>"); %>
<hbj:textView id="txtEname" text="<%=myBean.getEname()%>" design="HEADER2"/>
<hbj:textView id="txtPernr" text="<%='(' + myBean.getPernr() + ')' %>" design="HEADER3"/>
<hbj:gridLayout rowSize="1" columnSize="1" cellSpacing="2">
<hbj:gridLayoutCell columnIndex="1" rowIndex="1" width="100%" verticalAlignment="TOP">
<hbj:group id="grpContractData"
design="SAPCOLOR"
title="Contract Data"
tooltip="Contract Data"
width="100%">
<hbj:groupBody>
<hbj:formLayout id="myForm"
marginTop="5px"
marginRight="5px"
marginBottom="5px"
marginLeft="5px"
width="300px" >
<hbj:formLayoutRow id="Row1" paddingTop="1px" paddingBottom="1px" >
<hbj:formLayoutCell id="Cell11" align="LEFT" width="40%" >
<hbj:label
id="label_WorkContract"
text="Work Contract xx"
design="LABEL"
labelFor="WorkContract"></hbj:label>
</hbj:formLayoutCell>
<hbj:formLayoutCell id="Cell12" align="LEFT" width="40%" >
<hbj:textView
id="WorkContract"
text="<%=myBean.getAnsvh_Text()%>"
design="STANDARD"
/>
</hbj:formLayoutCell>
</hbj:formLayoutRow>
<hbj:formLayoutRow id="Row2" paddingTop="1px" paddingBottom="1px" >
<hbj:formLayoutCell id="Cell21" align="LEFT" width="40%" >
<hbj:label
id="label_HiringDate"
text="Hiring Date"
design="LABEL"
labelFor="HiringDate"></hbj:label>
</hbj:formLayoutCell>
<hbj:formLayoutCell id="Cell22" align="LEFT" width="40%" >
<hbj:textView
id="HiringDate"
text="<%=myBean.getEntry_Date()%>"
design="STANDARD"
/>
</hbj:formLayoutCell>
</hbj:formLayoutRow>
</hbj:formLayout>
</hbj:groupBody>
</hbj:group>
</hbj:gridLayoutCell>
</hbj:gridLayout>
</hbj:form>
</hbj:page>
</hbj:content>
******************* JAVA
package MSSPackage;
import MSSBeanPackage.HolderDetailBean;
import com.sapportals.htmlb.*;
import com.sapportals.htmlb.enum.*;
import com.sapportals.htmlb.event.*;
import com.sapportals.htmlb.page.DynPage;
import com.sapportals.htmlb.page.PageException;
import com.sapportals.portal.htmlb.page.JSPDynPage;
import com.sapportals.portal.htmlb.page.PageProcessorComponent;
import com.sapportals.portal.prt.component.IPortalComponentContext;
import com.sapportals.portal.prt.component.IPortalComponentProfile;
import com.sapportals.portal.prt.component.IPortalComponentRequest;
// SAP RFC Imports
import com.sap.mw.jco.IFunctionTemplate;
import com.sap.mw.jco.JCO;
import com.sap.mw.jco.JCO.Table;
import com.sapportals.portal.prt.service.jco.IJCOClientPoolEntry;
import com.sapportals.portal.prt.service.jco.IJCOClientService;
import com.sapportals.portal.prt.runtime.PortalRuntime;
public class HolderDetail extends PageProcessorComponent {
public DynPage getPage(){
return new HolderDetailDynPage();
public static class HolderDetailDynPage extends JSPDynPage{
JCO.Repository mRepository;
public void doInitialization(){
// Define request, context and profile containers
IPortalComponentRequest reqst = (IPortalComponentRequest) this.getRequest();
IPortalComponentContext myContext = reqst.getComponentContext();
IPortalComponentProfile myProfile = myContext.getProfile();
// Define bean reference to bean
HolderDetailBean myBean = new HolderDetailBean();
// Place bean in user profile.
myProfile.putValue("myBean", myBean);
public void doProcessAfterInput() throws PageException {
public void doProcessBeforeOutput() throws PageException {
// Define request, context and profile containers
IPortalComponentRequest request = (IPortalComponentRequest) this.getRequest();
IPortalComponentContext myContext = request.getComponentContext();
IPortalComponentProfile myProfile = myContext.getProfile();
//Get Bean from Profile
HolderDetailBean myBean = (HolderDetailBean) myProfile.getValue("myBean");
String sapSystem = "SAP_R3_HumanResources";
// GET THE POSITION ID FROM THE URL QUERY STRING
String PosId;
PosId = request.getParameter("CKey");
//PosId = "60004790";
if (PosId == null)
myBean.testing = (String) request.getComponentSession().getValue("PosId");
else
PosId = PosId.substring(6, 14);
request.getComponentSession().putValue("PosId", PosId);
myBean.testing = "POSID:" + PosId;
this.setJspName("HolderDetailJSP.jsp");
Thanks for your thoughts. -
Open Dynpage from other Dynpage on clicking a link and get user parameter.
Hi All,
I have one application in which i am displaying the data based on the user data entered.
On that page i have written a loop to display the records. Also i have a link there stating "More Details".
If i click on the link of More Details, then remaining data for that should be displayed on the new page.
I am able to open a new page but unable to get the data which for that. in query.
I am using HTMLB control with javascript.
Pls help me out.
Regards,
Dhruv ShahHi,
You can do that in two ways...
1. If you are having QuickLink for your pages(of corrosponding Applications)
then,
On Click...
call a Java Script function where you can pass a request parametre to the new page...
some thing like this..
//Script
function onMyClick(parametertoPass)
location.href="/irj/portla/PageQuickLink?RequestParamName="+parametertoPass;
//Whre PageQuickLink is the QuickLink for the More Details Page that you set in Portal
//End Script
Now in the Details Applications(page what you are opening on click of more)
inside the component/DynPage
String s=request.getParametre("RequestParamName");
2. If you are not using Page QuickLinks...
Then,
only change you have to do is...
//Script
function onMyClick(parametertoPass)
location.href="/irj/servlet/prt/portal/prtroot/ApplicationYouWantToOpen.ComponentName?RequestParamName="+parametertoPass;
//For Ex. If the application you want to open is
//ProjectName : MyDetailsProj
//ComponentName : MyDetailsComp
//Then your
location.href="/irj/servlet/prt/portal/prtroot/MyDetailsProj.MyDetailsComp?RequestParamName="+parametertoPass;
//End Script
Regards,
Srinivas.
Edited by: srinivas sistu on Aug 12, 2008 11:10 AM -
Error using Taxonomy Query Builder
Hi Everybody,
I'm using Taxonomy Query Builder to create some Queries to automatically classify documents that are uploaded to KM, but when I create the Query appears the next error:
com.sapportals.wcm.repository.NotCheckedOutException
And the Query is not saved.
I have been creating a lot of queries in others folders in KM without any problem, but only with a specifics folders this happens.
Somebody has faced a similar problem??
Many thanks in advanceHi Vincent,
I found in the logs:
#0014C210C3530021000125000000518300043A5BE2B613B4#1190066226860#com.sapportals.wcm.control.classification.ClassificationResourceControl#sap.com/irj#com.sapportals.wcm.control.classification.ClassificationResourceControl#kmadmin#12841#####SAPEngine_Application_Thread[impl:3]_38##0#0#Error##Plain###Error on saving query data - - com.sapportals.wcm.repository.NotCheckedOutException
at com.sapportals.wcm.repository.ResourceException.fillInStackTrace(ResourceException.java:399)
at java.lang.Throwable.<init>(Throwable.java:180)
at java.lang.Exception.<init>(Exception.java:29)
at com.sapportals.wcm.WcmException.<init>(WcmException.java:40)
at com.sapportals.wcm.util.content.ContentException.<init>(ContentException.java:30)
at com.sapportals.wcm.repository.ResourceException.<init>(ResourceException.java:113)
<< item 1 : >> at com.sapportals.wcm.repository.NotCheckedOutException.<init>(NotCheckedOutException.java:63)
at com.sapportals.wcm.repository.manager.cm.CmNamespaceAndContentManager.setContent(CmNamespaceAndContentManager.java:2071)
at com.sapportals.wcm.repository.ResourceImpl.internalUpdateContent(ResourceImpl.java:3732)
at com.sapportals.wcm.repository.ResourceImpl.updateContent(ResourceImpl.java:1834)
at com.sapportals.wcm.service.indexmanagement.retrieval.classification.QueryFolder.setQueryAsXMLFile(QueryFolder.java:203)
at com.sapportals.wcm.service.indexmanagement.retrieval.classification.QueryFolder.setQueryFast(QueryFolder.java:128)
at com.sapportals.wcm.service.indexmanagement.retrieval.classification.QueryFolder.setQuery(QueryFolder.java:116)
at com.sapportals.wcm.control.classification.ClassificationQueryControl.onSaveQuery(ClassificationQueryControl.java:1040)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.sapportals.wdf.stack.Control.dispatchHtmlbEvent(Control.java:386)
at com.sapportals.wdf.stack.Control.dispatchHtmlbEvent(Control.java:391)
at com.sapportals.wdf.WdfEventDispatcher.dispatch(WdfEventDispatcher.java:176)
at com.sapportals.wdf.WdfCompositeController.onWdfEvent(WdfCompositeController.java:539)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.sapportals.htmlb.page.DynPage.doProcessCompositeEvent(DynPage.java:204)
at com.sapportals.htmlb.page.DynPage.doProcessCurrentEvent(DynPage.java:142)
at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:115)
at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:134)
at com.sapportals.wcm.portal.component.base.ControllerComponent.doContent(ControllerComponent.java:77)
at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:215)
at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:645)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:189)
at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:753)
at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240)
at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:522)
at java.security.AccessController.doPrivileged(Native Method)
at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:405)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
any idea???
Regards -
Error while running a query-Input for variable 'Posting Period is invalid
Hi All,
NOTE: This error is only cropping up when I input 12 in the posting period variable selection. If I put in any other value from 1-11 I am not getting any errors. Any ideas why this might be happening?
I am getting the following error when I try and run a query - "Input for variable 'Posting Period (Single entry, mandatory)' is invalid" - On further clicking on this error the message displayed is as follows -
Diagnosis
Variable Posting Period (Single Value Entry, Mandatory) is used as a lower limit (X) and an upper limit () in an interval selection. This limit has the value #.
System Response
Procedure
Enter a different value for variable Posting Period (Single Value Entry, Mandatory). If the value of the other limit is determined by another variable, you can change its value also.
Procedure for System AdministrationOK.
Well, if the variable is not used in any interval selection, then I would say "something happened to it".
I would make a copy of the query and run it to check if I get the same problem with period 12.
-> If not, something is wrong in the original query (you can proceed as below, if changes to original are permitted).
If so, then try removing the variable completely from the query and hardcode restriction to 12.
-> If problem still persists, I would have to do some thinking.
If problem is gone, then add the variable again. Check.
-> If problem is back, then the variable "is sick". Only quick thing to do, is to build an identical variable and use that one.
If problem also happens with the new variable, then it's time to share this experience with someone else and consider raising an OSS.
Good luck!
Jacob
P.S: what fisc year variant are you using?
Edited by: Jacob Jansen on Jan 25, 2010 8:36 PM -
Logical database in adhoc query
Hello All,
Can anyone tell me what is the logical database in adhoc query?Hi
When you create a query , you have to select an infoset. Infoset can be considered as a source from which data is populated in the Query Fields.
Infosets are created from Transaction SQ02.
There can be four methods through which an Infoset can become a source of data:
1. Table join ( By joining two or more tables from Data dictionary)
example: Joining tables PA0001 and PA0006 on Pernr to get a one resultant dataset
2. Direct read of Basis Table ( Like PA0001 as a source for data in Infoset )
3. Logical Database ( A Pre-written Program by SAP that extract data from clusters, tables taking care of authorizations and validity periods)
Example : Logical database PNP, PNPCE (Concurrent Employement),PCH ( LDB for Personnel Development Data)
Custom Logical DBs can be created in T_Code SE-36.
4. Data Retrieval by a Program ( Custom code written by ABAP developers which will collect and process data) . This program has a corresponding Structure in data dictionary and the fields of this structure will be used in query)
Reward Points, if helpful.
Regards
Waseem Imran -
Query help on Goods Receipt Query with AP Invoice
Looking for a little help on a query. I would like to list all the goods receipts for a given date range and then display the AP Invoice information (if its been copied to an AP Invoice). I think my problem is in my where clause, I plagerized an SAP query to show GR and AP from a PO as a start. SBO 2005 SP01. Any help would be great appreciated. Thanks
SELECT distinct 'GR',
D0.DocStatus,
D0.DocNum ,
D0.DocDate,
D0.DocDueDate,
D0.DocTotal,
'AP',
I0.DocStatus,
I0.DocNum ,
I0.DocDate,
I0.DocDueDate,
I0.DocTotal,
I0.PaidToDate
FROM
((OPDN D0 inner Join PDN1 D1 on D0.DocEntry = D1.DocEntry)
full outer join
(OPCH I0 inner join PCH1 I1 on I0.DocEntry = I1.DocEntry)
on (I1.BaseType=20 AND D1.DocEntry = I1.BaseEntry AND D1.LineNum=I1.BaseLine))
WHERE
(D1.BaseType=22 AND D1.DocDate>='[%0]' AND D1.DocDate<='[%1]')
OR (I1.BaseType=20 AND I1.BaseEntry IN
(SELECT Distinct DocEntry
FROM PDN1 WHERE BaseType=22 AND DocDate>='[%0]' AND DocDate<='[%1]'))Hi Dalen ,
I believe it is because of the condition
(D1.BaseType=22 AND D1.DocDate>='%0' AND D1.DocDate<='%1')
OR (I1.BaseType=20 AND I1.BaseEntry IN
(SELECT Distinct DocEntry FROM PDN1 WHERE PDN1.BaseType=22 AND DocDate>='%0' AND DocDate<='%1'))
Try changing
D1.BaseType=22 OR D1.DocDate>='%0' AND D1.DocDate<='%1
PDN1.BaseType=22 OR DocDate>='%0' AND DocDate<='%1'))
Lets see what would be the result . Lets have some fun with troubleshooting
See what would be the difference in the result .
Thank you
Bishal -
Can you check for data in one table or another but not both in one query?
I have a situation where I need to link two tables together but the data may be in another (archive) table or different records are in both but I want the latest record from either table:
ACCOUNT
AccountID Name
123 John Doe
124 Jane Donaldson
125 Harold Douglas
MARKETER_ACCOUNT
Key AccountID Marketer StartDate EndDate
1001 123 10526 8/3/2008 9/27/2009
1017 123 10987 9/28/2009 12/31/4712 (high date ~ which means currently with this marketer)
1023 124 10541 12/03/2010 12/31/4712
ARCHIVE
Key AccountID Marketer StartDate EndDate
1015 124 10526 8/3/2008 12/02/2010
1033 125 10987 01/01/2011 01/31/2012
So my query needs to return the following:
123 John Doe 10526 8/3/2008 9/27/2009
124 Jane Donaldson 10541 12/03/2010 12/31/4712 (this is the later of the two records for this account between archive and marketer_account tables)
125 Harold Douglas 10987 01/01/2011 01/31/2012 (he is only in archive, so get this record)
I'm unsure how to proceed in one query. Note that I am reading in possibly multiple accounts at a time and returning a collection back to .net
open CURSOR_ACCT
select AccountID
from
ACCOUNT A,
MARKETER_ACCOUNT M,
ARCHIVE R
where A.AccountID = nvl((select max(M.EndDate) from Marketer_account M2
where M2.AccountID = A.AccountID),
(select max(R.EndDate) from Archive R2
where R2.AccountID = A.AccountID)
and upper(A.Name) like parameter || '%'
<can you do a NVL like this? probably not... I want to be able to get the MAX record for that account off the MarketerACcount table OR the max record for that account off the Archive table, but not both>
(parameter could be "DO", so I return all names starting with DO...)if I understand your description I would assume that for John Dow we would expect the second row from marketer_account ("high date ~ which means currently with this marketer"). Here is a solution with analytic functions:
drop table account;
drop table marketer_account;
drop table marketer_account_archive;
create table account (
id number
, name varchar2(20)
insert into account values (123, 'John Doe');
insert into account values (124, 'Jane Donaldson');
insert into account values (125, 'Harold Douglas');
create table marketer_account (
key number
, AccountId number
, MktKey number
, FromDt date
, ToDate date
insert into marketer_account values (1001, 123, 10526, to_date('03.08.2008', 'dd.mm.yyyy'), to_date('27.09.2009', 'dd.mm.yyyy'));
insert into marketer_account values (1017, 123, 10987, to_date('28.09.2009', 'dd.mm.yyyy'), to_date('31.12.4712', 'dd.mm.yyyy'));
insert into marketer_account values (1023, 124, 10541, to_date('03.12.2010', 'dd.mm.yyyy'), to_date('31.12.4712', 'dd.mm.yyyy'));
create table marketer_account_archive (
key number
, AccountId number
, MktKey number
, FromDt date
, ToDate date
insert into marketer_account_archive values (1015, 124, 10526, to_date('03.08.2008', 'dd.mm.yyyy'), to_date('02.12.2010', 'dd.mm.yyyy'));
insert into marketer_account_archive values (1033, 125, 10987, to_date('01.01.2011', 'dd.mm.yyyy'), to_date('31.01.2012', 'dd.mm.yyyy'));
select key, AccountId, MktKey, FromDt, ToDate
, max(FromDt) over(partition by AccountId) max_FromDt
from marketer_account
union all
select key, AccountId, MktKey, FromDt, ToDate
, max(FromDt) over(partition by AccountId) max_FromDt
from marketer_account_archive;
with
basedata as (
select key, AccountId, MktKey, FromDt, ToDate
from marketer_account
union all
select key, AccountId, MktKey, FromDt, ToDate
from marketer_account_archive
basedata_with_max_intervals as (
select key, AccountId, MktKey, FromDt, ToDate
, row_number() over(partition by AccountId order by FromDt desc) FromDt_Rank
from basedata
filtered_basedata as (
select key, AccountId, MktKey, FromDt, ToDate from basedata_with_max_intervals where FromDt_Rank = 1
select a.id
, a.name
, b.MktKey
, b.FromDt
, b.ToDate
from account a
join filtered_basedata b
on (a.id = b.AccountId)
ID NAME MKTKEY FROMDT TODATE
123 John Doe 10987 28.09.2009 31.12.4712
124 Jane Donaldson 10541 03.12.2010 31.12.4712
125 Harold Douglas 10987 01.01.2011 31.01.2012
If your tables are big it could be necessary to do the filtering (according to your condition) in an early step (the first CTE).
Regards
Martin -
Query help : Query to get values SYSDATE-1 18:00 hrs to SYSDATE 08:00 hrs
Hi Team
I want the SQl query to get the data for the following comparison : -
Order Created is a Date Column , and i want to find out all the values from (SYSDATE-1) 18:00 hours to SYSDATE 08:00 hours
i.e.
(SYSDATE-1) 18:00:00 < Order.Created < SYSDATE 08:00:00.
RegardsHi, Rohit,
942281 wrote:
If i want the data in the below way i.e.
from (SYSDATE-1) 18:00 hours to SYSDATE 17:59 hours ---> (SYSDATE-1) 18:00:00 < Order.Created < SYSDATE 07:59:00.If you want to include rows from exactly 18:00:00 yesterday (but no earlier), and exclude rows from exatly 08:00:00 today (or later), then use:
WHERE ord_dtl.submit_dt >= TRUNC (SYSDATE) - (6 / 24)
AND ord_dtl.submit_dt < TRUNC (SYSDATE) + (8 / 24)
So can i use the below format : -
ord_dtl.submit_dt BETWEEN trunc(sysdate)-(6/24) and trunc(sysdate)+(7.59/24) . Please suggest . .59 hours is .59 * 60 * 60 = 2124 seconds (or .59 * 60 = 35.4 minutes), so the last time included in the range above is 07:35:24, not 07:59:59.
If you really, really want to use BETWEEN (which includes both end points), then you could do it with date arithmentic:
WHERE ord_dtl.submit_dt BETWEEN TRUNC (SYSDATE) - (6 / 24)
AND TRUNC (SYSDATE) + (8 / 24)
- (1 / (24 * 60 * 60))but it would be simpler and less error prone to use INTERVALs, as Karthick suggested earlier:
WHERE ord_dtl.submit_dt BETWEEN TRUNC (SYSDATE) - INTERVAL '6' HOUR
AND TRUNC (SYSDATE) + INTERVAL '8' HOUR
- INTERVAL '1' SECONDEdited by: Frank Kulash on Apr 17, 2013 9:36 AM
Edited by: Frank Kulash on Apr 17, 2013 11:56 AM
Changed "- (8 /24)" to "+ (8 /24)" in first code fragment (after Blushadown, below) -
Query help, subtract two query parts
Hi,
I am beginner of PL/SQL and have a problem I couldn’t solve:
Table (op_list):
Item - Amount - Status
Item1 - 10 - in
Item2 - 12 - in
Item3 - 7 - in
Item1 - 2 - out
Item2 - 3 - out
Item1 - 1 - dmg
Item3 - 3 - out
Item1 - 2 - out
Item2 - 5 - out
Item2 - 2 - in
Item3 - 1 - exp
Would like to get result of query (subtract amount of 'out/dmg/exp' from 'in' ):
Item - Amount left
Item1 - 5
Item2 - 6
Item3 - 3
I wrote code that returns sum of all incoming items and sum all out/dmg/exp items, but couldn’t solve how to subtract one part of querry from another. Or maybe there is a better way. Also worried what happens if there is no 'out/dmg/exp' only 'in'
select item.name, sum(op_list.item_amount)
from op_list
inner join item
on op_list.item = item.item_id
where op_list.status = 'in'
group by item.name
union
select item.name, sum(op_list.item_amount)
from op_list
inner join item
on op_list.item = item.item_id
where op_list.status = 'out'
or op_list.status = 'dmg'
or op_list.status = 'exp'
group by item.name
Return:
Item1 - 10 [10 in]
Item1 - 5 [2+1+2]
Item2 - 14 [12+2]
Item3 - 7
Item3 - 4 [3+1]
Thanks in advanceHi,
We can also use simple inline views to get what we need.
select a.item,a.amount-b.amount Balance from
(select item,sum(amount) Amount from op_list
where status = 'in'
group by item) a,
(select item,sum(amount) Amount from op_list
where status in ('out','dmg','exp')
group by item) b
where
a.item=b.item
order by item;
ITEM BALANCE
Item1 5
Item2 6
Item3 3Regards,
Prazy -
Query help: query to return column that represents multiple rows
I have a table with a name and location column. The same name can occur multiple times with any arbitrary location, i.e. duplicates are allowed.
I need a query to find all names that occur in both of two separate locations.
For example,
bob usa
bob mexico
dot mexico
dot europe
hal usa
hal europe
sal usa
sal mexico
The query in question, if given the locations usa and mexico, would return bob and sal.
Thanks for any help or advice,
-=beekyHow about this?
SELECT NAME
FROM <LOCATIONS_TABLE>
WHERE LOCATION IN ('usa','mexico')
GROUP BY NAME
HAVING COUNT(DISTINCT LOCATION) >= 2Results:
SQL> WITH person_locations AS
2 (
3 SELECT 'bob' AS NAME, 'USA' AS LOCATION FROM DUAL UNION ALL
4 SELECT 'bob' AS NAME, 'Mexico' AS LOCATION FROM DUAL UNION ALL
5 SELECT 'dot' AS NAME, 'Mexico' AS LOCATION FROM DUAL UNION ALL
6 SELECT 'dot' AS NAME, 'Europe' AS LOCATION FROM DUAL UNION ALL
7 SELECT 'hal' AS NAME, 'USA' AS LOCATION FROM DUAL UNION ALL
8 SELECT 'hal' AS NAME, 'Europe' AS LOCATION FROM DUAL UNION ALL
9 SELECT 'sal' AS NAME, 'USA' AS LOCATION FROM DUAL UNION ALL
10 SELECT 'sal' AS NAME, 'Mexico' AS LOCATION FROM DUAL
11 )
12 SELECT NAME
13 FROM person_locations
14 WHERE LOCATION IN ('USA','Mexico')
15 GROUP BY NAME
16 HAVING COUNT(DISTINCT LOCATION) >= 2
17 /
NAM
bob
salHTH!
Edited by: Centinul on Oct 15, 2009 2:25 PM
Added sample results. -
QUERY HELP!!! trying to create a query
i'm creating a summary report
i have a table with sale dates
for example i have a table tab_1 and column saleDate as
saleDat
1923
1936
1945
2003
2005
saleDate contains years and there are some missing years where no sale
was made
My report has to display years starting from earliest year
so i have to create a query that starts with 1923
but the problem is that I have to have years that are not in table.
for example i have to display years 1924 which is not in table
so the part of report has to look like
1923 blah blah summary.........
1924 "
1925
1926
2005
2006
upto current year (2006 may not be in the table, but i have to display)
i just need to know the query that can query all the years starting from
the ealiest saleDate to current year
thanks in advancePlease write the query in the following form:
SELECT a.year, --- place other columns from your table.
FROM (SELECT (:start_num + rownum) year
FROM all_tab_columns
WHERE :start_num + rownum <= :end_num) a,
tab_1 b
WHERE a.year = b.saleDat(+);
Note:
1) if your start year and end year are 1923 and 2006. Then input as below:
:start_num = 1922
:end_num = 2006
2) Since for some of the years (1924 etc) may not be there in your so you may need to use NVL to print proper indicators.
3) If you have more than one record in tab_1 for a particular year then group them based year and then use it.
Hope this helps.
- Saumen. -
Hi
I have a query / recordset that would be looking at 12000 rows in a database and 10 different variables and potential filters chosen by end users.
Should I put 10 wild card / url Where statements in my recordset query or should I put IF statements in my query.
ie.
If URL colname then ",and BetType= "xzz"" .
Is that the most efficient way to run my queries.
I will be running about 10 recordsets on my page all looking at these url variables so it will be a busy page.
If that is the answer can someone please tell me how to insert the if statement - i've tried allsorts but it wont work.
$colname_Recordset4 = "%";
if (isset($_GET['colname'])) {
$colname_Recordset4 = $_GET['colname'];
mysql_select_db($database_racing_analysis, $racing_analysis);
$query_Recordset4 = sprintf("SELECT BetType, sum(if(season='2006-2007', Bet, 0)) AS '2006-2007', sum(if(season='2007-2008', Bet, 0)) AS '2007-2008', sum(if(season='2008-2009', Bet, 0)) AS '2008-2009' FROM dataextract WHERE BetType Like %s and TrackID = 1 and Distance = 1000 and Class = 1 GROUP BY BetType", GetSQLValueString($colname_Recordset4, "text"));
$Recordset4 = mysql_query($query_Recordset4, $racing_analysis) or die(mysql_error());
$row_Recordset4 = mysql_fetch_assoc($Recordset4);
$totalRows_Recordset4 = mysql_num_rows($Recordset4);
hope someone can help.
SimonThat part of the query cross tabs my data into three columns - not intended to confuse the issue. I'd have the same problem with a basic query.
So Here is a very basic version:
I want an IF statement to go around: "WHERE Distance = 1000" and "AND Class = 1"
That I believe will reduce the effort on the MYSQL Server as it wouldn't be running a bunch of wild card queries and would only run if there is a URL paramter delivered.??
I just don't get how to put the IF statements in PHP.
thanks
$maxRows_Recordset3 = 5;
$pageNum_Recordset3 = 0;
if (isset($_GET['pageNum_Recordset3'])) {
$pageNum_Recordset3 = $_GET['pageNum_Recordset3'];
$startRow_Recordset3 = $pageNum_Recordset3 * $maxRows_Recordset3;
mysql_select_db($database_racing_analysis, $racing_analysis);
$query_Recordset3 = "SELECT * FROM dataextract WHERE Distance = 1000 AND Class = 1";
$query_limit_Recordset3 = sprintf("%s LIMIT %d, %d", $query_Recordset3, $startRow_Recordset3, $maxRows_Recordset3);
$Recordset3 = mysql_query($query_limit_Recordset3, $racing_analysis) or die(mysql_error());
$row_Recordset3 = mysql_fetch_assoc($Recordset3);
if (isset($_GET['totalRows_Recordset3'])) {
$totalRows_Recordset3 = $_GET['totalRows_Recordset3'];
} else {
$all_Recordset3 = mysql_query($query_Recordset3);
$totalRows_Recordset3 = mysql_num_rows($all_Recordset3);
$totalPages_Recordset3 = ceil($totalRows_Recordset3/$maxRows_Recordset3)-1; -
IF and ABS condition statement in BEX query designer
Hi,
I would like to ask the best way for me to produce an acceptable result from Excel IF and ABS Condition statement.
The condition statement that I have on my Excel file is
=IF((A2-B2)>0,ABS(A2-B2),0)
I'm trying multiple times to reproduce this in BEX Query designer, unfortunately I'm getting a bad result or unacceptable formula.
Anyone who could help me with my issue?
Thanks,
ArnoldHi Arnold,
Thank you,
Nanda
Maybe you are looking for
-
We configured email router using Office 365 Exchange Online. Followed everything as mentioned in "http://blogs.msdn.com/b/niran_belliappa/archive/2014/04/10/installing-and-configuring-the-e-mail-router-for-exchange-online-and-crm-online.aspx". Test a
-
IPhone Date & Time keeps changing to "Cupertino" time zone
Hi Every time i change my Time Zone in Settings>General>Date & Time to "London,United Kingdom" it correctly changes to "London" but if i exit Settings and navigate back to Time Zone settings it has changed to "Cupertino". This effects World Clocks an
-
I can hear through my headphones, but sound not de...
Im spending my birthday, struggling to figure out why this problem has occured, where as this has never happened before. A couple weeks ago i just popped in m skullcandies and spoke with no issue.
-
How can I install with no problems??
Hi every body.. i've just installed oracle 10g developer but i've got a little problem with connecting forms or report builder.. error message [ [b]tns:couldnot resolve the service name ] even though the I-sql*plus connect very well.. I want to kno
-
T400 Not shutting down due to driver error.
Hello! I have recently purchased a refurbished IBM ThinkPad T400 (TYPE: 2767 DM9). The laptop came shipped with Windows XP SP2 Professional 32 Bit; originally in great working condition. However, I had it upgraded to Windows 7 SP1 32Bit Professional