SMQ1 query

Hi,
I have a scenario where i am using qrfc while sending idoc to non sap system, Now suppose when connection is down all the idoc gets queued in SMQ1 for that queue, my question is when the connection is back again how do i execute this queue so that all the stuck idoc go in sequence.

HI ROBERTO,
THANKYOU VERYMUCH FOR YOUR KIND INFORMATION WHICH IS VERY HELPFUL.
I FEEL VERY SORRY FOR MYSELF FOR ASKING AGAIN. CAN YOU KINDLY PROVIDE ME WITH THAT OSS NOTE AS I HAVE NO ACCESS.
THANKYOU VERY MUCH MY EMAIL ID IS [email protected]
THANKS AND REGARDS
NEELKAMAL

Similar Messages

  • Error message in trans code SMQ1(backend) for material replication

    Hi All,
    I am wandering if someone can help me with this query. I have basically followed all the customisation steps requried to replicate replicate material masters from R/3 to SRM. I had infact closley followed the advise posted on the blog: How to replicate material master from R/3 to SRM
    However, once I start the initial load in SRM with trans code R3AS and thebn goto trans code SMQ1(in R/3 backend), the load has failed with the 'status' or SYSFAIL. When I double click on this message, I get the error:
    "Exception condition" EBCDIC_PROBLEM__OSSNOTE_33300 8" raised.
    I have looked at note 333008 but cannot find any clues as to what is causing the load to fail. In trans code R3AM1, the job's status only remains as 'Running' and does not change.
    Any pointers as to the cause and required workaound would be appreciated!
    Thanks
    SW.

    Hi Muthu,
    Thank you for your feedback. I have just this moment implemented the note you recommended, but this does not appear to have resolved the error message, even though the consumer has been changed from CRM to SRM in r/3 and srm.
    I basically undertook the initial load for object 'dnl_cust_basis3' only with trans code R3AS, but the system still shows the following error message in the outbound que list (trans code SMQ1) in the sender R/3 backend system:
    ""Exception condition "EBCDIC_PROBLEM__OSSNOTE_33300
    8" raised""
    I am reluctant to implement the note number (333008) within the error message as the note heavily describes the CRM 2.0 component only and shows little relevance to SRM 5.0.
    Any feedback would be appreciated. I have pasted the note contents below.
    Thanks
    SW.
    Note 333008 - XML in R/3 Adapter
    Summary
    Symptom
    For the Plugin PI 2000.1 (R/3 OLTP) and the CRM 2.0B Support Package 08, the R/3 Adapter was enhanced by an XML support.As of CRM 2.0B Support Package 7, SAP recommends to use R3A XML as a standardAs of CRM 2.0C, XML is automatically the standard setting in the server, only in the OLTP PlugIn, you have to maintain a setting.
    Additional key words
    CRM, R/3 Adapter, XML, CRM_SEND_XML, BAPIMTCS, IBM, AS/400 OS/400 S/390, DBIF_RSQL_SQL_ERROR, SQL error -302 accessing table SMOAUSP
    Cause and prerequisites
    System requirement:Plugin PI 2000.1 with at least PlugIn patch 03 or higher and CRM 2.0B Support Package 08 or CRM 2.0C on the server.(XML is possible with CRM 2.0B Support Package 07, however, Support Package 08 is recommended:if you only use Support Package 07, parameter CRM_CONVERT_ENDIAN has to be maintained even if this has no effect - see Note 207264.)
    Solution
    Introduction
    To eliminate or minimize problems that occur during the data transfer between different operating and computer systems, an XML interface was implemented in the R/3 Adapter in addition to the binary transport, which has been used so far.
    This XML interface consists of an XML generating program on the OLTP-Plugin and an XML parser on the CRM.
    The generating program generates an XML document from the data stream to be sent to the CRM System and the XML parser converts this back into the original data stream. Except for the initial configuration, the mechanism is transparent and does not require further user activities.
    Activation
    To use XML in CRM 2.0B in the initial download, you have to enter the following new parameter in table SMOFPARSFA (Transaction SM30 or R3AC6) on the CRM server:
                 Key:             R3A_COMMON
                 Parameter name:  CRM_SEND_XML
                 Parameter value: 'X'
    In CRM 2.0C, table SMOFPARSFA does not have to be maintained since XML is automatically the standard setting.
    For the data transfer with XML in delta download you must do the following
    Maintain parameter table CRMPAROLTP in PlugIn Release PI 2000.1, patch 03:Newly enter parameter name CRM_SEND_XML_FOR_DEFAULT_DEST with parameter value 'X'.
    Maintain parameter table CRMRFCPAR as of PlugIn Release PI 2000.2:Transaction SM30, set field SEND_XML of CRMRFCPAR to value 'X' for the corresponding entries
    Advantage
    The data transport in the XML format solves both the endian problem (see Note 207264) and the code page problem which existed during a data transport from or to an IBM mainframe (AS/400, S/390) to or from an ASCII-based system (NT, UNIX).
    Deactivation
    Regarding the performance, the XML format has the disadvantage that the XML parser needs CPU time (which can be processed in parallel because no database access is made).If you want to do without the XML conversion in a specially defined system landscape, then set parameter CRM_SEND_XML to blank in the CRM System, and set table CRMPAROLTP (PI 2000.1) or CRMRFCPAR (PI 2000.2) without XML in the R/3 OLTP.In addition, parameter CRM_CONVERT_ENDIAN must be maintained correctly in the CRM System (see Note 0207264).
    You can do without the XML conversion under the following conditions.
    1. The OLTP system infrastructure and the CRM system infrastructure mustbe homogeneous. Example: all OLTP application servers UNIX and all CRMapplication servers NT.
    2. You must also make sure that no application servers with different operating systems are used in future.
    3. The OLTP system infrastructure must be homogeneous.In the CRM System it is possible to limit the application servers permitted for the processing of the queues by setting a specific server group.The application servers of these group servers must be homogeneous.However, the setting is valid for all inbound queues and cannot be restricted to specific queue names.
                  You can set up a server group with Transaction RZ12, and in Transaction SMQR you can set up the server group used for the processing via menu option 'Edit' -> 'Change AS group'. For details on this, see Note 369007.
    As SAP cannot check the customer's system landscape,this option is to be classified on project basis where the responsibility is the customer's and not SAP's.
    If homogeneous system infrastructures do not exist, the time required for saving data and documents can nevertheless be significantly reduced by carrying out the XML conversion in one asynchronous step.For this, you must maintain parameter CRM_XML_BACKGROUND_PROCESSING_ON in table CRMPAROLTP. For this purpose, refer to Note 350176.
    Notice
    Since the IPC is currently not able to process the XML document of the R/3 Adapter, XML must not be activated for IPC targets in CRMRFCPAR!
    Since, in addition to the existing data mapping and data transport, the XML generation and the XML parsing is included in the sequence of operations, you must expect a download runtime which might be twice as long as usual!
    Due to performance reasons, only the '&', '<' and '>' characters are converted into XML escape sequences at present.Therefore, other special characters in text fields might cause problems and might not be output correctly on the target system.
    The XML conversion does not solve problems with multi-byte texts, for example the data exchange between a Japanese and an English codepage is not supported.
    Source code corrections
    Header Data
    Release Status: Released for Customer
    Released on: 25.07.2001  22:00:00
    Priority: Recommendations/additional info
    Category: Special development
    Primary Component: CRM-MW-ADP Middleware Adapter
    Secondary Components: CRM-MW Middleware
    Affected Releases
    Software
    Component Release From
    Release To
    Release And
    subsequent
    MDM 200 200 200  
    COM_CRMMDM 40 4.0 4.0  
    UIFRW 40 4.0 4.0  
    CGVMIC 10 100 100  
    BBPCRM 2.0 20B 20C X
    BBPCRM 3.0 300 300 X
    BBPCRM 3.1 310 310 X
    BBPCRM 3.5 350 350 X
    BBPCRM 4.0 400 400 X
    Correction delivered in Support Package
    Support
    Packages Release Package
    Name
    BBPCRM 20C

  • Query on CIF Queues

    Hi Apo Experts,
    I am having some queries on CIF queues...
    > I am getting below SYSFAIL error in outbound queues at APO Side.
    I can see that error text as " Material status does not allow a planned independent " . But there is no material number in the error text. So i double clikced the queue again. then i get the below screen which gives information about LUW , whichj is very very long ....
    Q1. How to know the material number in this particular queue ? I have posted the same question in previous post and i got reply that u need to keep clicking the queue until u find material number. I have done the same , but i didnt find any material number. I was getting this LUW Information , which is very long and it is in digital coding .
    (""" I have checked these queues in SCM Queue Manager also, and i was unable to find the material numner )
    Q2. How to process this Queue again ? Can i maintain the Material Status in ECC Side and process this queue again ?
    Q3. One question on LUW. Does all the material numbers which are assigned in one Particular Integration model form a single LUW ??
    Suppose i have given 10 materials in a integration model X and another 5 materials in another integration model Y , Then there will be two LUW's .. is it right ??
    Q4.  ( this may question may sound stupid but still.... ) .. Outbound queue in APO gets created when we are transferring something from APO to R/3 , and system was unable to process. So due to the error, an Outbound Queue gets created . My question is , If suppose there is a porblem in R/3 side, then whether an Inbound queue gets created at R/3 side ?? Or only Outbound Queue in APO gets created ?? or both gets created ??
    I am having above serious doubts and working on the same. Request to kindly provide your inputs .Thanks to all for your time and support. Good Day !!
    Regards,
    Raghavendra

    Hi Emani,
    Below information is based on best of my knowledge and experience, please try and let me know i this helps.
    Q1. How to know the material number in this particular queue ? I have posted the same question in previous post and i got reply that u need to keep clicking the queue until u find material number. I have done the same , but i didnt find any material number. I was getting this LUW Information , which is very long and it is in digital coding .
    (""" I have checked these queues in SCM Queue Manager also, and i was unable to find the material numner )
    Ans: Please follow below steps
    SMQ1/SMQ2 --> double click on queue name ---> again double click on queue name ---> again double click on queue name.
    You will reach on a screen with heading , here you will be able to see material name and other information;
    Q2. How to process this Queue again ? Can i maintain the Material Status in ECC Side and process this queue again ?
    ANS: This will depend on the error message you are getting under status column, if this is due to some temporary reasons, then you can try executing by pressing execute button , or you might need to delete the queue ---> remove reason of sysfail ---> regenerate the queue.
    Q3. One question on LUW. Does all the material numbers which are assigned in one Particular Integration model form a single LUW ??
    Suppose i have given 10 materials in a integration model X and another 5 materials in another integration model Y , Then there will be two LUW's .. is it right ??
    ANS: Please check below link for more details on qRFC administration
    qRFC Administration - Connectivity - SAP Library
    Further for different objects different LUWs got formed i.e. Sales Orders, Purchase Orders, Stock etc., you  can find more information on qRFC communication model in below link.
    http://help.sap.com/erp2005_ehp_06/helpdata/en/48/9be66e1f84062ee10000000a42189d/content.htm?frameset=/en/48/9c44f92ab0062fe10000000a42189d/frameset.htm
    Q4.  ( this may question may sound stupid but still.... ) .. Outbound queue in APO gets created when we are transferring something from APO to R/3 , and system was unable to process. So due to the error, an Outbound Queue gets created . My question is , If suppose there is a porblem in R/3 side, then whether an Inbound queue gets created at R/3 side ?? Or only Outbound Queue in APO gets created ?? or both gets created ??
    ANS: Queues are getting created whenever you transfer some data from one system to another, if there is some issue then the queue doesn't get cleared, it gets stuck.
    If you are sending data from ECC to APO then it creates outbound queue in ECC and if it gets cleared then an Inbound queue in APO.
    Hope this answers your query.
    Rgds
    Sourabh

  • Queues stuck in SMQ1 and SMQ2

    Hi,
    In CRM Middleware, I am trying to do some Master Data upload of Sales Orders from CRM to R/3 but a queue  MCEX11 gets stuck on the R/3 side with 1 entry and status NOSEND
    Can you please tellme how to get rid of this? Also how can i avoid distribution locks on a document.
    On the CRM side also certain queues were stuck in the outbound SMQ1 with status NOSEND. How to process these  queues manually?
    I checked note 431345 and other related notes also. Would appreciate if someone can help me on this.
    Thanks.
    Rgds
    Priyanka

    Hi Priyanka,
    To clear the no send status entry, go to R3AS, select the object say for BP (Bupa_main) press enter and then execute, then open R3AM1 enter object name as Bupa_main and select Running and done and execute.
    Now you can open SMQ2 and click on each entry with nosend status and then click on activate queue in the top toolbar, this shld change the status to running and then click on refresh.
    The following is the list of Queue extensions that are used in CRM, all the queues start with these extensions:
    <b>Outbound queues</b>
    CDB*     Start queues for loads CRM -> CDB
    CRM_SITE*     Load queues for Mobile Clients
    CSA*     Send queues of CRM Server Applications
    EXT*     Start queues for loads CRM -> Ext.
    R3AI/R*     Start queues for loads from ERP Backend system
    R3AU*     Load queues CRM -> ERP Backend system
    <b>Inbound queues</b>
    CRI*     Initial load queues CRM -> CDB
    CRM_SITE*      Load queues from Mobile Clients
    R3A*     Load queues ERP Backend  -> CRM
    CSA*     Send inbound queues of CRM Server Applications
    Hope this answers ur query.
    Regards,
    Amit
    Message was edited by:
            Amit Singh

  • 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 Administration

    OK.
    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.
    Regards

    Hi, 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 advance

    Hi,
    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,
    -=beeky

    How 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 advance

    Please 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.

  • IF statement in Query

    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.
    Simon

    That 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,
    Arnold

    Hi Arnold,
    Thank you,
    Nanda

  • Text value is not getting displayed in Query designer !!

    Dear experts..,
    i have created a new query in query designer using my info provider and then selected one field in default value and then trying to restrict that particular field while selecting the restriction in query designer am getting the exact text value but after generating the report instead of text value , key value is getting displayed....so how can i get text instead of key value??
    please help me friends....
    i have posted in OSS mesage also...i got a reply like...even i didnt understand his reply too...what he is trying to say?
    whether can i get text display or not???
    can any one help me in this regard???
    SAP Reply----
    Hello kumar,
    After another analysis I have to inform you about general concept of
    "compounded characteristics".
    A compounded characteristic bounds two characteristics. The technical
    name is generated by both technical names of the two characteristics
    combined by two underlines "__".
    An individual text is only available for one single combination of both
    characteristics.
    Example:
    =======
    Compounded characteristic "Famous family name" is a combination of
    characteristic "COUNTRY" & "ETHNIC". Technical name: COUNTRY__ETHNIC
    Values for Country: USA, Australia
    Values for Ethnic: Asian, Latino
    Possible value combinations with individual text:
    USA & Asian; text: "Ling"
    USA & Latino; text: "Sanchez"
    Australia & Asian; text: "Chu"
    Australia & Latino; text: "Garcia"
    (Keep in mind the individual text only valid for the specific
    combination.)
    In analogy to the issue that you reported, you want to restrict this
    compounded characteristic. In the window where you select the restrictedvalue (called Selector) you'll see on the left hand side all available
    combinations of the characters with an individual text.
    You select family name "Chu" and drag'n'drop it to the right side.
    Actually you can only restrict the right compounded characteristic. In
    our example you would restrict on characteristic "ETHNIC" with value
    "Asian". (When you switch on technical names this comes more clear). Thetext "Chu" is displayed in the context of Selector because you selected
    value combination Australia & Asian. But in the end it's just a
    placeholder(!) for any combination of characteristic "ETHNIC" and value
    #Asian#; in our example it could be USA & Asian "Ling" or Australia &
    Asian "Chu").
    By leaving the Selector the individual text is gone because now the
    context is lost between the two characteristics. You have just a
    restriction on characteristic "ETHNIC" with value "Asian". An individualtext can't be displayed because the compounded characteristic is not
    specified for this restriction.
    You're right, it is confusing when "loosing" the text of a restriction.
    But accoring to the concepts of the compounded characteristics it
    is a correct behavior.

    Hi anandkumar,
    I belive this issue can be resolved by changing the  Query proprties for the perticular field.
    Kindly check the Field proerties in query designer and ensure that Text is enabled ather than Key.
    __Field property check up:__Go to query designer->click onn the field-> Right hand side in properties click on display tab-> select Text in drop down menu of Display as tab.
    FURTHER CHECK UP: check the master data avaiulability for the perticular info object, if masterdata is not available, do the text data for txt data availability in report level.
    Hope this helps you!!
    Best Regards,
    Maruthi

Maybe you are looking for

  • How to indent second line in a very long heading when creating a table of contents?

    I need to make a table of contents. Some of the chapter headings are very long and fill more than a single line. When I create my table of contents, I want the second lines to be 'pushed in' in the table. Like this 1 chaper one xxxxxxxxxxx 2 Chapter

  • Simple basic java question

    public static void main(String[] args) ..anyone know the statement as above could be start at begining , so what is the (String[ ] args) mean in java ? in my ideas of this statement is publc : indicates the statemean can be used as all class , this i

  • Problem with (sun) Smiley

    There are two (sun) when I want to add smiley in my text message, one is correct but another is not.  I already contact your live chat support... Thnx Attachments: 11291874_10153236522144927_1930582557_n.jpg ‏63 KB

  • 8213 D1G no internet, no usb, only vga

    Hello I have this second hand 8213 D1G.  Tried to install windows on it. Windows works, but I have no internet.  In the device manager section I see several ! and ?.  At the 'ethernet line'.  If I look for drivers in the properties tab, there is no d

  • Bringing in Additional Fields into SAP Query

    Hi, I'm new to SAP Query. I had to modify an existing report to bring in an additional field from one of the tables of the query. When i look at the tables in query, i don't even see the field i would like to add under the table. I guess it needs to