Query with condities

Hi
Iu2019ll try to make a query to get a material number with the price (condition). I use the tables KONP and A304, but I get no results.
In table KONP Iu2019ve the condition record number and the amount; in table A304 Iu2019ve the condition record number and the material number. So I use as selection the material number in the table A304 to get the amount from KONP. But the query said no results.
When i use trx SE16 for both tables i'll will get the results that i want.
Can anyone tell me what Iu2019m doing wrong or better can give me the solution?
Thanks,
Peter

Hi Peter,
Go to Transaction SQVI and select the table join while creating the query and by default the tables are getting getting connected with many fields... remove all by right click on relation and join both the table with one field only i.e. "KNUMH" (condition record number)
please try it and confirm.
It is working fine.
Thanks & Regards,
Rahul Verulkar

Similar Messages

  • Sql query with conditions and calculations???

    Hi,
    how I can build a query with conditions and calculations?
    E.g. I've got this table
    Start          | End     |     Working Place     |     Mandatory
    01-JAN-13 | 11-JAN-13 |     Office           |          1
    14-JAN-13 | 25-JAN-13 |     Home Office      |     0
    04-MRZ-13| 15-MRZ-13 |     Office           |          0
    11-FEB-13 | 22-FEB-13 |     Office           |          1
    Now if column working place=Office and column mandatory=0
    the new column "price" has to calculate: (End-Start)* $25.00
    and if working place=Office and column mandatory=1
    the "price" column has to calculate: (End-Start)* $20.60
    else $0.00
    I tried it with the case statement but I didn't know how
    to calculate my values and display it to the virtual column "price".
    Something like
    case
    when Working_Place = 'Office' and Mandatory=1
         then ...
    else '0.00'
    end as PRICE
    Or is it not possible?
    Edited by: DB2000 on 12.03.2013 05:09

    Use CASE:
    select  start_dt,
            end_dt,
            working_place,
            mandatory,
            case
              when working_place = 'Office' and mandatory = 0 then (end_dt - start_dt) * 25
              when working_place = 'Office' and mandatory = 1 then (end_dt - start_dt) * 20.60
              else 0
            end price
      from  tbl
    START_DT  END_DT    WORKING_PLA  MANDATORY      PRICE
    01-JAN-13 11-JAN-13 Office               1        206
    14-JAN-13 25-JAN-13 Home Office          0          0
    04-MAR-13 15-MAR-13 Office               0        275
    11-FEB-13 22-FEB-13 Office               1      226.6
    SQL> SY.

  • Performance of APD with source as 'Query with conditions'

    Hi,
    I have a question regarding the performance of an APD query with conditions when it is run in the background.
    I have an infocube with 80 million records.I have a query to find Top 15 (Condition In query) Customers per territory.
    With the help of an APD Query (Source) i wanted to populate the details (customer category , etc) of the Top 15 Customers into a DSO (Target)
    Right now it takes 6 minutes to run the query in web.
    I wanted to know how feasible it is to use an APD (run in backgrnd) to dump the results of the BEx query (which has conditions Top 15) into DSO.
    Also , what other options do i have ?
    Appreciate your answers.
    Regards

    Thomas thanks for the response.  I have checked the file on the app server and found that the lines with more than 512 characters are being truncated after 512 characters.  Basis team is not aware of any such limits on the app server.  I am sure few on the forum would have extracted data to a file on the application server using APD.  Please note that the file extraction to the client workstation is working as expected (posts lines more than 512 characters).

  • Sub query with conditions

    Hi,
    Is it possible to run a sub query with conditions? I keep receiving an error 'Registration Data' -2006.
    For example, here is a simplified query which gives the error...
    SELECT T1.CardCode FROM
    SELECT T0.CardCode FROM OCRD T0 WHERE T0.CardCode = '[%0]'
    ) T1
    FOR BROWSE
    Thanks for any help,
    Robin

    SBO SQL-parser sometimes kidding. My solution is to use temptables/views/storedprocedures.
    It's faster then "unbugging" parser <b>:)</b>
    in your case that can be like the following:
    SELECT T0.CardCode INTO #temp FROM OCRD T0 WHERE T0.CardCode = N'[%0]'
    SELECT qq.CardCode FROM #temp qq FOR BROWSE
    BTW: registration data error is usially says us about %-argument reason

  • Missing Result Rows on Query with Conditions

    I have a query that has a condition to show only items over $2500.00.   We have a result row that shows for plant when the condtions is not on but once the condition is set that result row goes away.  Does anyone know how to get a result row to show up on reports with conditions?  Thank you.
    Caroline

    Hi Caroline,
    In BI 7.0, you goto do this in Query Designer.
    Select any of your characteristic in the designer and choose Display Properties to always display result.
    Then run the query.
    Assign Points if Helps !!
    Regards,
    Naveen Rao Kattela

  • SQL Report query with condition (multiple parameters) in apex item?

    Hello all,
    I have a little problem and can't find a solution.
    I need to create reports based on a SQL query or I.R. Nothing hard there.
    Then I need to add the WHERE clause dynamically with javascript from an Apex item.
    Again not very hard. I defined an Apex item, set my query like this "SELECT * FROM MYTAB WHERE COL1 = :P1_SEARCH" and then I call the page setting the P1_SEARCH value. For instance COL1 is rowid. It works fine.
    But here is my problem. Let's consider that P1_SEARCH will contain several rowids and that I don't know the number of those values,
    (no I won't create a lot of items and build a query with so many OR!), I would like sotheming like "SELECT * FROM MYTAB WHERE ROWID IN (:P1_SEARCH) with something like : ROWID1,ROWID2 in P1_SEARCH.
    I also tried : 'ROWID1,ROWID2' and 'ROWID1','ROWID2'
    but I can't get anything else than filter error. It works with IN with one value but as soon as there are two values or more, it seems than Apex can't read the string.
    How could I do that, please?
    Thanks for your help.
    Max

    mnoscars wrote:
    But here is my problem. Let's consider that P1_SEARCH will contain several rowids and that I don't know the number of those values,
    (no I won't create a lot of items and build a query with so many OR!), I would like sotheming like "SELECT * FROM MYTAB WHERE ROWID IN (:P1_SEARCH) with something like : ROWID1,ROWID2 in P1_SEARCH.
    I also tried : 'ROWID1,ROWID2' and 'ROWID1','ROWID2'
    but I can't get anything else than filter error. It works with IN with one value but as soon as there are two values or more, it seems than Apex can't read the string.For a standard report, see +{message:id=9609120}+
    For an IR&mdash;and improved security avoiding the risk of SQL Injection&mdash;use a <a href="http://download.oracle.com/docs/cd/E17556_01/doc/apirefs.40/e15519/apex_collection.htm#CACFAICJ">collection</a> containing the values in a column instead of a CSV list:
    {code}
    SELECT * FROM MYTAB WHERE ROWID IN (SELECT c001 FROM apex_collections WHERE collection_name = 'P1_SEARCH')
    {code}
    (Please close duplicate threads spawned by your original question.)

  • Using a query with condition as a source to fill an ODS

    Hi all,
    i need your help guys, i got the task to take the data from a BI Query and fill and ODS monthly, it means, i need taking like a picture of the data of the report at the end of each month, in this way i bring the data and fill a ods or cube monthly.
    I tried to do it with APD and doesnt work because this query has many conditions, now i tried with the RSCRM_BAPI and this when execute last too much, this execution has 2 days and doesnt finish yet, i can think this is not a factible way either, what else can i do? help

    hi,
    You need to write a code to get the key figure and characterstics value.
    First step is to defined the structure of all the field that you want to read.
    This table I_AXIS_DATA will contain the characterstics.
    This table I_CELL_DATA will contain the keyfigure.
    Please find the code.
                READ TABLE I_AXIS_DATA INTO WA_AXIS_DATA WITH KEY AXIS = '001' .
                IF SY-SUBRC = 0.
                  LOOP AT WA_AXIS_DATA-SET INTO WA_SET.
                        INDEX = INDEX + 1.
                        IF WA_SET-CHANM = 'infoobject name'.
                          WA_ROW_COL-fields = WA_SET-CHAVL_EXT .
                        ENDIF.
                        IF WA_SET-CHANM = 'infoobject name'.
                          WA_ROW_COL-field2 = WA_SET-CHAVL_EXT.
                        ENDIF.
                  ENDLOOP.
                ENDIF.
    ******* POPULATE COLUMNS AGAINST ROWS
                CLEAR WA_ROW_COL.
                V_COUNT = 1.
                INDEX = 1.
                LOOP AT IT_ROW_COL INTO WA_ROW_COL.
                  WHILE ( V_COUNT <= V_NUMOFKEYF ).
                        READ TABLE I_CELL_DATA INTO WA_CELL_DATA INDEX INDEX.
                        IF V_COUNT = 1.
                          WA_ROW_COL-keyfigure = WA_CELL_DATA-FORMATTED_VALUE.
                        ENDIF.
                        V_COUNT = V_COUNT + 1.
                        INDEX = INDEX + 1.
                        CLEAR WA_CELL_DATA.
                  ENDWHILE.
                  APPEND WA_ROW_COL TO IT_R_C_H.
                  V_COUNT = 1.
    Hope this is helpful.
    Thanks,
    Saveen Kumar

  • Writing query with conditions from textbox control on a form

    i have written the following code for a query to run on a condition....
    and i want to pass the condition value from textbox not directly as i did in my code
    i want to get it from a textbox control on form
    how to do this ....?
               oConditions = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_Conditions)
               oCondition = oConditions.Add
               oCondition.BracketOpenNum = 1
                oCondition.Alias = "U_RentedAvailable"
                oCondition.Operation = SAPbouiCOM.BoConditionOperation.co_EQUAL
                oCondition.CondVal = "Y"   ' i want to get it from a textbox control on form
                oCondition.CompareFields
                oCondition.BracketCloseNum = 1
               oDBDataSource.Query([oConditions])
                oMatrix.LoadFromDataSource()

    thanx for ur reply....
    here i'm using UDO object for my table....when i enter data on my textbox and click on find i'm not getting data
    ..here is the sample code what i have written....
    Public Sub loadMatrix()
            oitem = oForm.Items.Item("8")
            oMatrix = oItem.Specific
            oColumns = oMatrix.Columns
            oDBDataSource = oForm.DataSources.DBDataSources.Add("@VIDS_MGT")
            '' ''' setting conditions...
            '' to create the new condition collection
            Try
                oConditions = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_Conditions)
                oCondition = oConditions.Add
                oCondition.BracketOpenNum = 1
                oCondition.Alias = "U_RentedAvailable"
                oCondition.Operation = SAPbouiCOM.BoConditionOperation.co_EQUAL
                oCondition.CondVal = DirectCast(oForm.Items.Item("7").Specific, SAPbouiCOM.EditText).Value.ToString()
                oCondition.BracketCloseNum = 1
                '' '''End of  setting conditions...
                oColumn = oColumns.Item("V_5")
                oColumn.DataBind.SetBound(True, "@VIDS_MGT", "Code")
                oColumn = oColumns.Item("V_4")
                oColumn.DataBind.SetBound(True, "@VIDS_MGT", "Name")
                oColumn = oColumns.Item("V_3")
                oColumn.DataBind.SetBound(True, "@VIDS_MGT", "U_CardCode")
                oColumn = oColumns.Item("V_2")
                oColumn.DataBind.SetBound(True, "@VIDS_MGT", "U_ShelfNumber")
                oColumn = oColumns.Item("V_1")
                oColumn.DataBind.SetBound(True, "@VIDS_MGT", "U_SpaceNumber")
                oColumn = oColumns.Item("V_0")
                oColumn.DataBind.SetBound(True, "@VIDS_MGT", "U_RentedAvailable")
                oDBDataSource.Query([oConditions])
                oMatrix.LoadFromDataSource()
            Catch ex As Exception
                SBO_Application.MessageBox(ErrorToString)
            End Try
        End Sub

  • Universe on Bex Query with Condition

    Hi,
    I'm working on creating a WebI version of a Bex Report. I've created a universe on top of the Bex Query and then a WebI report based on the Universe. The Bex Query contains 4 conditions. They allow optional filtering of two measures, Less Then or Equal and Greater Then or Equal. The conditions are applied at the employee level of the results set, so for example, if an employee's total sales is greater than 50 and the user enters 50 for the condition then none of that employee's rows of data will appear.
    A single filter was created in teh Universe containing all four conditions. I had to update the syntax as they were all brought in using Equals instead of the GreaterorEqual and LessOrEqual. I also updated the filter key to use the @Select and the correct dimension.
    In the WebI report, only the two using LessOrEqual are functional. The two conditions that utilize GreaterOrEqual will only remove individual rows, not the enter set of rows for that employee. I've set the aggregation to sum instead of Database Delegated for the two affected measures.
    If anyone has any input on how to get the GreaterOrEqual conditions functioning properly, or a workaround that will remove all rows for an employee when their sales are not above a cert number, it would be greatly appreciated.
    Thanks,
    Jeff

    Also here is the syntax for one of the filters that is not functioning properly.
    <OPTIONAL><FILTER KEY="@Select(Total Quantity of Adjustments\Total Quantity of Adjustments)"><CONDITION OPERATORCONDITION="GreaterOrEqual"><CONSTANT CAPTION="@Prompt('Minimum Quantity of Adjustments','N',,mono,free)"/></CONDITION></FILTER></OPTIONAL>

  • Need help with group by query with condition

    Name
    ID
    A1
    1
    A2
    1
    A3
    1
    A1
    1
    A2
    2
    A2
    3
    A3
    3
    A1
    4
    A2
    4
    A3
    5
    I want to get result of total count  where ID is less than 4
    A1 - 2
    A2 - 3
    A3 -  2

    Hi,
    If you want to get 0 counts for names that don't have any low ids, then use a CASE expression instead of a WHERE clause.
    You didn't post CREATE TABLE and INSERT statements for your sample data, so I'll use scott.emp to illustrate.
    Say you want to see how many sals in each job are under 3000, like this:
    JOB       UNDER_3_CNT
    CLERK               4
    SALESMAN            4
    PRESIDENT           0
    MANAGER             3
    ANALYST             0
    Here's one way to do that:
    SELECT    job
    ,         COUNT (CASE WHEN sal < 3000 THEN 1 END)  AS under_3_cnt
    FROM      scott.emp
    GROUP BY  job
    This shows that there are ANALYSTs and PRESIDENTs in the scott.emp table; there just don't happen to be any with sals under 3000.

  • BDC select query with addition based on all If conditions

    Hi can any one send me the select query with conditions like
    If Itab is not initial.
    Endif. and if possible with valiadations messages also.
    IF CHECK_NUMBER of CHECK_ADVICE of the flat file = PAYR-CHECT. Then update SAP field BSEG-XREF2 .
    9.     When Flat file check Number = PAYR-CHECT then Insert or Update Flat file RECEIPT_DATE into SAP field BSEG-XREF1.
    Please send me immediately.

    >     SELECT rsnum
    >            rspos
    >            matnr
    >            werks
    >         lgort
    >            shkzg
    >            aufnr
    >            bdmng
    >            enmng                      
    >            FROM  resb INTO  TABLE it_rsnum FOR ALL ENTRIES IN it_aufnr
    >            WHERE rsnum EQ it_aufnr-rsnum
    >            AND   xloek NE 'X'
    >            AND   postp NE 'X'
    >            AND   resbbdmng GE resbenmng.
    >   ENDIF.
    >
    > Database Table RESB: 40,000,000 Records (40 Million)
    > Internal Table   it_aufnr:  20,000 Entries
    > Entries selected from RESB: 150,000.
    >
    Hi,
    the problem is the big for all entries table.
    Your 20.000 records FAE will be split into SEVERAL sql statements depending on the size of the table.
    Where do you get the it_auftrn from?
    If it's another transparent table try to JOIN this table to your big table.
    SELECT rsnum
                rspos
                matnr
                werks
            lgort
                shkzg
                aufnr
                bdmng
                enmng                      
                FROM  resb JOIN tab_auftrn  on  resbrsnum = tab_auftrnauftrn
                AND   xloek NE 'X'
                AND   postp NE 'X'
                AND   resbbdmng GE resbenmng.
    Make sure that your WHERE filter and the JOIN keys on both tables are supported by indexes.
    150.000 records about of 40 Mio. can definitly be serviced by an appropriate index:
    i.e. Index fields (check your PK or secondary indexes):
    rsnum
    enmng                      
    aufnr
    bye
    yk

  • Query with tables VEPVG, VBAK, VBAP AND KONV

    hi all,
    I have a requirement, that is Open Sale Orders which is having Special Discount. I am trying to write a Query, But KONV table is not coming into the joins. my execution plans is bellow
    VEPVG  -->  VBAK         vbak-knumv = konv-knumv and konv-kschl = Special Discount
                        VBAP
    Please explain me, how to design the query with conditions.
    Thanks & Regards,
    Srinivas

    Hi,
    Have you referred this help document.
    http://help.sap.com/printdocu/core/Print46c/EN/data/pdf/BCSRVQUE/BCSRVQUE.pdf
    Regards - Shree

  • Extract Sql Query with Actual Parameters from Report

    Hi
    I am able to extract query from Crystal Report using the following code :
    ReportDocument.ReportClientDocument.RowSetController.GetSqlStatement(new GroupPath, out tmp);
    But the sql query retrieve comes in the following format :
    select name , trans_code, account_code from command_query.accounts
    where account_code = {?Command_query_Prompt0}  and effective_date < '{?Command_query_prompt1 }'
    The parameters which I m using in the reports are :
    Account_Code and Effective_Date .
    Why does my extracted sql translates it into {?Command_query_Prompt0} and '{?Command_query_prompt1 }' .
    Is there any way to map this to the actual parameter values ?
    OR
    Can we extract the query after assigning the values ?
    Any help is appreciated ... 
    Thanks
    Sanchet

    hi,
    You can create nested sql query with conditional parameters,
    For example
    Select Code From OITT Where Code IN (Select ItemCode From OITM
    Where ItemName LIKE '[%0]' + '%%')
    Edited by: Jeyakanthan A on Jun 9, 2009 12:31 PM

  • Results for % calculation with Condition

    I have a condition on my query in BEx Query Designer that limits the customers shown to ones who have a dollar value in a particular column.  I am now trying to get the results rows to take the condition into account.
    For the dollar key figures, I can just set the results calculations to "Total", and that gives me the total dollars for the customers displayed (that fit the condition), as opposed to the total dollars for ALL customers (if I didn't have the condition).  This is correct.
    However, I have another key figure that represents what percentage of one dollar key figure that another dollar key figure is.  I cannot get the result rows for this key figure to correctly show me the results of the calculation for only the values that match the condition, it keeps showing the percentages based on the full dollar quantities outside of the condition.
    Is there a way for me to get the calculation that I want?
    Query without Condition:
    Customer_____Dollars1_____Dollars2_____%
    A_____________5___________20________25
    B____________10___________20________50
    C____________10___________10_______100
    Result________25___________50________50
    Query with Condition (Dollars1 > 5) Current behavior (wrong):
    Customer_____Dollars1_____Dollars2_____%
    B____________10___________20________50
    C____________10___________10_______100
    Result________20___________30________50
    Query with Condition (Dollars1 > 5) Desired behavior (correct):
    Customer_____Dollars1_____Dollars2_____%
    B____________10___________20________50
    C____________10___________10_______100
    Result________20___________30________66
    Please Help!

    Hi,
    As i cannot see invoice document number in output so would suggest to go for nested exception aggregation.
    Create a new formula and put your aggregated keyfigure inside it and repeat the steps which i told in my last post.
    Make sure to apply it on both the keyfigures.
    If this also not works then last approach would be---
    Make a formula variable with replacement path for customer in replacement path tab choose replace variable with infoobject-replace with attribute value-attribute constant 1..in currency/unit ttab choose number..
    Now multiply your both keyfigure with this formula variable.
    Hope it helps.

  • Dynamic select query with dynamic where condition

    Hi all,
    I want to use the dynamic select query with dynamic where condition. For that I used the below code but I am getting dump when using this code.
    Please advice, if there is any other way to achieve this requirement.
    Thanks,
    Sanket Sethi
    Code***************
    PARAMETERS: p_tabnam      TYPE tabname,
                p_selfl1      TYPE edpline,
                p_value       TYPE edpline,
                p_where1      TYPE edpline .
    DATA: lt_where    TYPE TABLE OF edpline,
          lt_sel_list TYPE TABLE OF edpline,
          l_wa_name   TYPE string,
          ls_where    TYPE edpline,
          l_having    TYPE string,
          dref        TYPE REF TO data,
          itab_type   TYPE REF TO cl_abap_tabledescr,
          struct_type TYPE REF TO cl_abap_structdescr,
          elem_type   TYPE REF TO cl_abap_elemdescr,
          comp_tab    TYPE cl_abap_structdescr=>component_table,
          comp_fld    TYPE cl_abap_structdescr=>component.
    TYPES: f_count TYPE i.
    FIELD-SYMBOLS : <lt_outtab> TYPE ANY TABLE,
    *                <ls_outtab> TYPE ANY,
                    <l_fld> TYPE ANY.
    struct_type ?= cl_abap_typedescr=>describe_by_name( p_tabnam ).
    elem_type   ?= cl_abap_elemdescr=>describe_by_name( 'F_COUNT' ).
    comp_tab = struct_type->get_components( ).
    comp_fld-name = 'F_COUNT'.
    comp_fld-type = elem_type.
    APPEND comp_fld TO comp_tab.
    struct_type = cl_abap_structdescr=>create( comp_tab ).
    itab_type   = cl_abap_tabledescr=>create( struct_type ).
    l_wa_name = 'l_WA'.
    CREATE DATA dref TYPE HANDLE itab_type.
    ASSIGN dref->* TO <lt_outtab>.
    *CREATE DATA dref TYPE HANDLE struct_type.
    *ASSIGN dref->* TO <ls_outtab>.
    * Creation of the selection fields
    APPEND p_selfl1 TO lt_sel_list.
    APPEND 'COUNT(*) AS F_COUNT' TO lt_sel_list.
    ** Creation of the "where" clause
    *CONCATENATE p_selfl1 '= '' p_value ''.'
    *            INTO ls_where
    *            SEPARATED BY space.
    *APPEND ls_where TO lt_where.
    * Creation of the "where" clause
    APPEND p_where1 TO lt_where.
    * Creation of the "having" clause
    l_having = 'count(*) >= 1'.
    * THE dynamic select
    SELECT          (lt_sel_list)
           FROM     (p_tabnam)
           INTO CORRESPONDING FIELDS OF TABLE <lt_outtab>.
    *       WHERE    (lt_where).

    Hi Sanket,
    The above given logic of mine works for you, put the code in the If condition and try-
    just like below:
    IF NOT P_EBELN IS INITIAL.
    lt_where = '& = ''&'' '.
    REPLACE '&' WITH p_ebeln INTO lt_where.
    REPLACE '&' WITH field_value INTO lt_where.
    SELECT (lt_sel_list) INTO CORRESPONDING FIELDS OF TABLE <lt_outtab>
    FROM (p_tabnam)
    WHERE (lt_where).
    ENDIF.
    thanks\
    Mahesh

Maybe you are looking for