Formatted search - case statement

I am trying to do a formatted search that would set the GL account field on the sales order row based on the first 2 digits of the business partner card code.
SELECT CASE
WHEN $[ORDR.cardcode] like "01%" then '40100-01'
WHEN $[ORDR.cardcode] like "02%" then '40100-02'
WHEN $[ORDR.cardcode] like "03%" then '40100-03'
WHEN $[ORDR.cardcode] like "04%" then '40100-04'
WHEN $[ORDR.cardcode] like "05%" then '40100-05'
WHEN $[ORDR.cardcode] like "06%" then '40100-06'
WHEN $[ORDR.cardcode] like "07%" then '40100-07'
WHEN $[ORDR.cardcode] like "08%" then '40100-08'
WHEN $[ORDR.cardcode] like "09%" then '40100-09'
WHEN $[ORDR.cardcode] like "10%" then '40100-10'
WHEN $[ORDR.cardcode] like "13%" then '40100-13'
else '40100-00'
The above does not work. I am trying to do this and refresh when the itemcode changes or anything on the row level.
Any ideas on what might be wrong?
Thanks in advance for any help

Here is an example :
SELECT CASE
WHEN $[$38.18.0] = 'OPPN1' THEN ($[$38.U_Price.NUMBER]/1.1)
WHEN $[$38.18.0] = 'OPPN2' THEN ($[$38.U_Price.NUMBER]/1.1)
WHEN $[$38.18.0] = 'OPPN3' THEN ($[$38.U_Price.NUMBER])
WHEN $[$38.18.0] = 'OPPN4' THEN ($[$38.U_Price.NUMBER])
WHEN $[$38.18.0] = 'OPPN0' THEN ($[$38.U_Price.NUMBER]) END
I suggest to use
$[$item.column.number/curr/date/0]
instead of
$[ordr.cardcode]
I have a SAP pdf file related to FMS. Let me know if you need it.
Rgds,

Similar Messages

  • Formatted search case statement help

    Hi all,
    I am trying to write a case statement in a formatted search, but am running into an error when I add a condition involving the item code. The code works find with the first WHEN statement involving the customer code $[$4.0.0] however, I receive an internal error when I add the second part involving the item code $[$38.1.1] Please advise.
    SELECT
    CASE WHEN $[$4.0.0] = 'C00023'
    THEN 'E002'
    WHEN $[$38.1.1] = 'ItemA'
    THEN 'J002'
    END
    THank you!
    Jane

    Hi Jane,
    Where do you assign this FMS? If it is on the header, the second condition will not work. If it is line level, try change it to $[$38.1.0\].
    Thanks,
    Gordon

  • CASE STATEMENTS AND CASE EXPRESSIONS IN ORACLE9I PL/SQL

    제품 : PL/SQL
    작성날짜 : 2001-11-13
    CASE STATEMENTS AND CASE EXPRESSIONS IN ORACLE9I PL/SQL
    =======================================================
    PURPOSE
    아래의 자료는 Case 문에서 oracle 8.1.7과 Oracle 9i의 New Feature로 8.1.7에서는
    sqlplus 에서만 가능했고, 9i 부터는 pl/sql 까지 가능하다.
    Explanation
    1. Oracle 8.1.7 Feature
    Oracle 8.1.7 에서 Case 문은 Decode 문과 유사하지만, 기존의 decode 문을 쓰는 것보다
    더 많은 확장성과 Logical Power와 좋은 성능을 제공한다. 주로 나이와 같이 category 별로
    나눌때 주로 사용하고 Syntex는 아래와 같다.
    CASE WHEN <cond1> THEN <v1> WHEN <cond2> THEN <v2> ... [ELSE <vn+1> ] END
    각각의 WHEN...THEN 절의 argument 는 255 까지 가능하고 이 Limit를 해결하려면
    Oracle 8i Reference를 참조하면 된다.
    The maximum number of arguments in a CASE expression is 255, and each
    WHEN ... THEN pair counts as two arguments. To avoid exceeding the limit of 128 choices,
    you can nest CASE expressions. That is expr1 can itself be a CASE expression.
    Case Example : 한 회사의 모든 종업원의 평균 봉급을 계산하는데 봉급이 $2000보다 작은경우
    2000으로 계산을 하는 방법이 pl/sql을 대신하여 case function을 사용할 수 있다.
    SELECT AVG(CASE when e.sal > 2000 THEN e.sal ELSE 2000 end) FROM emp e;
    Case Example : 나이를 column으로 가지고 있는 customer table을 예로 들어보자.
    SQL> SELECT
    2 SUM(CASE WHEN age BETWEEN 70 AND 79 THEN 1 ELSE 0 END) as "70-79",
    3 SUM(CASE WHEN age BETWEEN 80 AND 89 THEN 1 ELSE 0 END) as "80-89",
    4 SUM(CASE WHEN age BETWEEN 90 AND 99 THEN 1 ELSE 0 END) as "90-99",
    5 SUM(CASE WHEN age > 99 THEN 1 ELSE 0 END) as "100+"
    6 FROM customer;
    70-79 80-89 90-99 100+
    4 2 3 1
    1 SELECT
    2 (CASE WHEN age BETWEEN 70 AND 79 THEN '70-79'
    3 WHEN age BETWEEN 80 and 89 THEN '80-89'
    4 WHEN age BETWEEN 90 and 99 THEN '90-99'
    5 WHEN age > 99 THEN '100+' END) as age_group,
    6 COUNT(*) as age_count
    7 FROM customer
    8 GROUP BY
    9 (CASE WHEN age BETWEEN 70 AND 79 THEN '70-79'
    10 WHEN age BETWEEN 80 and 89 THEN '80-89'
    11 WHEN age BETWEEN 90 and 99 THEN '90-99'
    12* WHEN age > 99 THEN '100+' END)
    SQL> /
    AGE_G AGE_COUNT
    100+ 1
    70-79 4
    80-89 2
    90-99 3
    Example
    2. Oracle 9i Feature
    Oracle 9i부터는 pl/sql에서도 case문을 사용할 수 있으면 이것은
    복잡한 if-else 구문을 없애고, C언어의 switch문과 같은 기능을 한다.
    아래의 9i pl/sql Sample 및 제약 사항을 보면 아래와 같다.
    Sample 1:
    A simple example demonstrating the proper syntax for a case
    statement
    using a character variable as the selector. See the section entitled
    'Restrictions' at the end of this article for details on which PLSQL
    datatypes may appear as a selector in a case statement or
    expression.
    - - - - - - - - - - - - - - - - Code begins here - - - - - - - - - - - -
    set serveroutput on
    declare
    achar char(1) := '&achar';
    begin
    case achar
    when 'A' then dbms_output.put_line('The description was Excellent');
    when 'B' then dbms_output.put_line('The description was Very Good');
    when 'C' then dbms_output.put_line('The description was Good');
    when 'D' then dbms_output.put_line('The description was Fair');
    when 'F' then dbms_output.put_line('The description was Poor');
    else dbms_output.put_line('The description was No such Grade');
    end case;
    end;
    - - - - - - - - - - - - - - - - Code ends here - - - - - - - - - - - -
    Sample 2:
    A simple example demonstrating the proper syntax for a case
    expression
    using a character variable as the selector. See the section entitled
    'Restrictions' at the end of this article for details on which PLSQL
    datatypes may appear as a selector in a case statement or
    expression.
    - - - - - - - - - - - - - - - - Code begins here - - - - - - - - - - - -
    set serveroutput on
    declare
    achar char(1) := '&achar';
    description varchar2(20);
    begin
    description :=
    case achar
    when 'A' then 'Excellent'
    when 'B' then 'Very Good'
    when 'C' then 'Good'
    when 'D' then 'Fair'
    when 'F' then 'Poor'
    else 'No such grade'
    end;
    dbms_output.put_line('The description was ' || description);
    end;
    - - - - - - - - - - - - - - - - Code ends here - - - - - - - - - - - -
    NOTE: The above simple samples demonstrate two subtle differences in the
    syntax
    required for case statements and expressions.
    1) A case STATEMENT is terminated using the 'end case' keywords; a
    case
    EXPRESSION is terminated using only the 'end' keyword.
    2) Each item in a case STATEMENT consists of one or more
    statements, each
    terminated by a semicolon. Each item in a case expression
    consists of
    exactly one expression, not terminated by a semicolon.
    Sample 3:
    Sample 1 demonstrates a simple case statement in which the selector
    is
    compared for equality with each item in the case statement body.
    PL/SQL
    also provides a 'searched' case statement as an alternative; rather
    than
    providing a selector and a list of values, each item in the body of
    the
    case statement provides its own predicate. This predicate can be any
    valid boolean expression, but only one case will be selected.
    - - - - - - - - - - - - - - - - Code begins here - - - - - - - - - - - -
    set serveroutput on
    declare
    achar char(1) := '&achar';
    begin
    case
    when achar = 'A' then dbms_output.put_line('The description was
    Excellent');
    when achar = 'B' then dbms_output.put_line('The description was Very
    Good');
    when achar = 'C' then dbms_output.put_line('The description was
    Good');
    when achar = 'D' then dbms_output.put_line('The description was
    Fair');
    when achar = 'F' then dbms_output.put_line('The description was
    Poor');
    else dbms_output.put_line('The description was No such Grade');
    end case;
    end;
    - - - - - - - - - - - - - - - - Code ends here - - - - - - - - - - - -
    Sample 4:
    This sample demonstrates the proper syntax for a case expression of
    the
    type discussed in Sample 3 above.
    - - - - - - - - - - - - - - - - Code begins here - - - - - - - - - - - -
    set serveroutput on
    declare
    achar char(1) := '&achar';
    description varchar2(20);
    begin
    description :=
    case
    when achar = 'A' then 'Excellent'
    when achar = 'B' then 'Very Good'
    when achar = 'C' then 'Good'
    when achar = 'D' then 'Fair'
    when achar = 'F' then 'Poor'
    else 'No such grade'
    end;
    dbms_output.put_line('The description was ' || description);
    end;
    - - - - - - - - - - - - - - - - Code ends here - - - - - - - - - - - -
    Sample 5:
    This sample demonstrates the use of nested case statements. It is
    also
    permissable to nest case expressions within a case statement (though
    it
    is not demonstrated here), but nesting of case statements within a
    case
    expression is not possible since statements do not return any value.
    - - - - - - - - - - - - - - - - Code begins here - - - - - - - - - - - -
    set serveroutput on
    declare
    anum1 number := &anum1;
    anum2 number := &anum2;
    answer number;
    begin
    case anum1
    when 1 then case anum2
    when 1 then answer := 10;
    when 2 then answer := 20;
    when 3 then answer := 30;
    else answer := 999;
    end case;
    when 2 then case anum2
    when 1 then answer := 15;
    when 2 then answer := 25;
    when 3 then answer := 35;
    else answer := 777;
    end case;
    else answer := 555;
    end case;
    dbms_output.put_line('The answer is ' || answer);
    end;
    - - - - - - - - - - - - - - - - Code ends here - - - - - - - - - - - -
    Sample 6:
    This sample demonstrates nesting of case expressions within another
    case
    expression. Note again the absence of semicolons to terminate both
    the
    nested case expression and the individual cases of those
    expressions.
    - - - - - - - - - - - - - - - - Code begins here - - - - - - - - - - - -
    set serveroutput on
    declare
    anum1 number := &anum1;
    anum2 number := &anum2;
    answer number;
    begin
    answer :=
    case anum1
    when 1 then case anum2
    when 1 then 10
    when 2 then 20
    when 3 then 30
    else 999
    end
    when 2 then case anum2
    when 1 then 15
    when 2 then 25
    when 3 then 35
    else 777
    end
    else 555
    end;
    dbms_output.put_line('The answer is ' || answer);
    end;
    - - - - - - - - - - - - - - - - Code ends here - - - - - - - - - - - -
    Although PL/SQL anonymous blocks have been used in all of the examples
    so far,
    case statements and expressions can also be used in procedures,
    functions, and
    packages with no changes to the syntax.
    The following samples are included for completeness and demonstrate the
    use of
    case statements and/or expressions in each of these scenarios.
    Sample 7:
    This sample demonstrates use of a case statement in a stored
    procedure.
    Note that this sample also demonstrates that it is possible for each
    of
    the items in the case body to consist of more than one statement.
    - - - - - - - - - - - - - - - - Code begins here - - - - - - - - - - - -
    set serveroutput on
    create or replace procedure testcasestmt ( anum IN number ) is
    begin
    case
    when anum = 1 then dbms_output.put_line('The number was One');
    dbms_output.put_line('In case 1');
    when anum = 2 then dbms_output.put_line('The number was Two');
    dbms_output.put_line('In case 2');
    when anum = 3 then dbms_output.put_line('The number was Three');
    dbms_output.put_line('In case 3');
    when anum = 4 then dbms_output.put_line('The number was Four');
    dbms_output.put_line('In case 4');
    when anum = 5 then dbms_output.put_line('The number was Five');
    dbms_output.put_line('In case 5');
    else dbms_output.put_line('The description was Invalid input');
    dbms_output.put_line('In the else case');
    end case;
    end;
    exec testcasestmt(&anum);
    - - - - - - - - - - - - - - - - Code ends here - - - - - - - - - - - -
    Sample 8:
    This sample demonstrates the use of a case statement in a stored
    package.
    - - - - - - - - - - - - - - - - Code begins here - - - - - - - - - - - -
    set serveroutput on
    create or replace package testpkg2 is
    procedure testcasestmt ( anum IN number );
    function testcasestmt_f ( anum IN number ) return number;
    end testpkg2;
    create or replace package body testpkg2 is
    procedure testcasestmt ( anum IN number ) is
    begin
    case
    when anum = 1 then dbms_output.put_line('The number was One');
    dbms_output.put_line('In case 1');
    when anum = 2 then dbms_output.put_line('The number was Two');
    dbms_output.put_line('In case 2');
    when anum = 3 then dbms_output.put_line('The number was Three');
    dbms_output.put_line('In case 3');
    when anum = 4 then dbms_output.put_line('The number was Four');
    dbms_output.put_line('In case 4');
    when anum = 5 then dbms_output.put_line('The number was Five');
    dbms_output.put_line('In case 5');
    else dbms_output.put_line('The description was Invalid input');
    dbms_output.put_line('In the else case');
    end case;
    end;
    function testcasestmt_f ( anum IN number ) return number is
    begin
    case
    when anum = 1 then dbms_output.put_line('The number was One');
    dbms_output.put_line('In case 1');
    when anum = 2 then dbms_output.put_line('The number was Two');
    dbms_output.put_line('In case 2');
    when anum = 3 then dbms_output.put_line('The number was Three');
    dbms_output.put_line('In case 3');
    when anum = 4 then dbms_output.put_line('The number was Four');
    dbms_output.put_line('In case 4');
    when anum = 5 then dbms_output.put_line('The number was Five');
    dbms_output.put_line('In case 5');
    else dbms_output.put_line('The description was Invalid input');
    dbms_output.put_line('In the else case');
    end case;
    return anum;
    end;
    end testpkg2;
    exec testpkg2.testcasestmt(&anum);
    variable numout number
    exec :numout := testpkg2.testcasestmt_f(&anum);
    print numout
    - - - - - - - - - - - - - - - - Code ends here - - - - - - - - - - - -
    Sample 9:
    This sample demonstrates the use of a case expression in a stored
    package.
    - - - - - - - - - - - - - - - - Code begins here - - - - - - - - - - - -
    set serveroutput on
    create or replace package testpkg is
    procedure testcase ( anum IN number );
    function testcase_f ( anum IN number ) return number;
    end testpkg;
    create or replace package body testpkg is
    procedure testcase ( anum IN number ) is
    anumber number := anum;
    anothernum number;
    begin
    anothernum :=
    case
    when anumber = 1 then anumber + 1
    when anumber = 2 then anumber + 2
    when anumber = 3 then anumber + 3
    when anumber = 4 then anumber + 4
    when anumber = 5 then anumber + 5
    else 999
    end;
    dbms_output.put_line('The number was ' || anothernum);
    end;
    function testcase_f ( anum IN number ) return number is
    anumber number := anum;
    anothernum number;
    begin
    anothernum :=
    case
    when anumber = 1 then anumber + 1
    when anumber = 2 then anumber + 2
    when anumber = 3 then anumber + 3
    when anumber = 4 then anumber + 4
    when anumber = 5 then anumber + 5
    else 999
    end;
    dbms_output.put_line('The number was ' || anothernum);
    return anothernum;
    end;
    end testpkg;
    variable numout number
    exec testpkg.testcase(&anum);
    exec :numout := testpkg.testcase_f(&anum);
    print numout
    - - - - - - - - - - - - - - - - Code ends here - - - - - - - - - - - -
    제약 사항
    다음의 databasetype은 case 문에서 지원되지 않는다.
    BLOB
    BFILE
    VARRAY
    Nested Table
    PL/SQL Record
    PL/SQL Version 2 tables (index by tables)
    Object type (user-defined type)
    All of these types except for object types face a similar restriction
    even for if statements (i.e. they cannot be compared for equality directly) so this is unlikely to change for these types. Lack of support for object types is simply an implementation restriction which may be relaxed in future releases.
    Reference Ducumment
    Oracle 8.1.7 Manual
    NOTE:131557.1

    I have done the following code but doesn't
    like the statement of - "case(butNext)". What do you mean "doesn't like" -- did you get an error message?
    I'm guessing it won't compile because you're trying to switch on a Button.
    I tried something
    like "g.fillOval(100,50,70,90, BorderLayout.NORTH)"...no that doesn't make sense. You only use BorderLayout.NORTH when you're adding components to a BorderLayout layout manager. An oval is not a component and fillOval isn't adding a component and Graphics is not a Panel or layout manager.
    Would appreciate it if someone could tell me how to position
    shapes using the graohic method. I think the problem is that you're confusing shapes with components.

  • Regular Expression Search for Case Statement in VBA

    Hi,
    I'm having trouble trying to use regular expressions in a case statement. I have a CSV spreadsheet of a server's netstat output and am trying to plot everything into Visio. I have been able to do that, however I'm not trying to expand this capability and
    resuse the same code for many different servers. 
    I have the mainServer variable set as a Variant and in my current example it is set as "INTPXY001" (internal proxy server 001). I have tried different regex statements for the potential to have INTPXY001 - INTPXY999, EXTPXY001 - EXTPXY999, and
    SVCPXY001 - SVCPXY999 in place of the Case "INTPXY001", but nothing I have tried seems to work.
    '========================================
    Set mainServer As Variant
    Set AppVisio = CreateObject("visio.application")
    AppVisio.Visible = True
    AppVisio.Documents.AddEx "", visMSDefault, 0
    AppVisio.Documents.OpenEx "server_u.vss", visOpenRO + visOpenDocked
    mainServer = ActiveSheet.Cells(1, 2) 'sets mainServer to INTPXY001
    With AppVisio.ActiveWindow.Page
    Select Case mainServer
    Case "INTPXY001"
    .Drop AppVisio.Documents.Item("SERVER_U.VSS").Masters.ItemU("Proxy server"), 2.25, 9.25
    Case Else
    .Drop AppVisio.Documents.Item("SERVER_U.VSS").Masters.Item(("Server"), 2.25, 9.25
    End Select
    End With
    '========================================

    You cannot declare variables As Variant in VBScript. All variables in VBScript are implicitly variants.
    If you are asking about VBA (Visual Basic for Applications), then you're not asking in the correct forum.
    -- Bill Stewart [Bill_Stewart]

  • CASE statement in PL/SQL

    Hi PL/SQL experts,
    I'm going a bit loopy here, so could someone please point out what I'm doing wrong with this case statement:
    Test procedure is:
    CREATE OR REPLACE procedure SCOTT.postcode_validate_2 (input_post_code VARCHAR2) as
    alphabet_string VARCHAR2(52) := 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvxwyz';
    number_string VARCHAR2(10) := '012345789';
    last_part_postcode VARCHAR2(3) := NULL;
    BEGIN
    IF INSTR(input_post_code,' ') = 0
    THEN
    DBMS_OUTPUT.PUT_LINE('We need a space in the postcode please');
    GOTO exit;
    ELSIF LENGTH(SUBSTR(input_post_code,instr(input_post_code,' ')+1)) > 3
    THEN
    DBMS_OUTPUT.PUT_LINE('Last part of postcode can only be 3 characters');
    GOTO exit;
    ELSE
    last_part_postcode := SUBSTR(input_post_code,instr(input_post_code,' ')+1);
    END IF;
    CASE input_post_code
    WHEN (length(substr(input_post_code,1,instr(input_post_code,' ')-1)) = 2
    AND instr(alphabet_string,substr(input_post_code,1,1)) != 0
    AND instr(number_string,substr(input_post_code,2,1)) != 0)
    THEN
    DBMS_OUTPUT.PUT_LINE('We have a valid postcode in the format A9')
    -- ELSE
    -- DBMS_OUTPUT.PUT_LINE('Sorry but that is an incorrect postcode! Format A9');
    -- GOTO exit;
    -- END IF;
    WHEN (length(substr(input_post_code,1,instr(input_post_code,' ')-1)) = 3
    AND instr(alphabet_string,substr(input_post_code,1,1)) != 0
    AND instr(alphabet_string,substr(input_post_code,2,1)) != 0
    AND instr(number_string,substr(input_post_code,3,1)) != 0)
    THEN
    DBMS_OUTPUT.PUT_LINE('We have a valid postcode in the format AA9')
    -- ELSE
    -- DBMS_OUTPUT.PUT_LINE('Sorry but that is an incorrect postcode! Format AA9');
    -- GOTO exit;
    -- END IF;
    WHEN (length(substr(input_post_code,1,instr(input_post_code,' ')-1)) = 3
    AND instr(alphabet_string,substr(input_post_code,1,1)) != 0
    AND instr(number_string,substr(input_post_code,2,1)) != 0
    AND instr(number_string,substr(input_post_code,3,1)) != 0)
    THEN
    DBMS_OUTPUT.PUT_LINE('We have a valid postcode in the format A99')
    -- ELSE
    -- DBMS_OUTPUT.PUT_LINE('Sorry but that is an incorrect postcode! Format A99');
    -- GOTO exit;
    -- END IF;
    WHEN (length(substr(input_post_code,1,instr(input_post_code,' ')-1)) = 3
    AND instr(alphabet_string,substr(input_post_code,1,1)) != 0
    AND instr(number_string,substr(input_post_code,2,1)) != 0
    AND instr(alphabet_string,substr(input_post_code,3,1)) != 0)
    THEN
    DBMS_OUTPUT.PUT_LINE('We have a valid postcode in the format A9A')
    -- ELSE
    -- DBMS_OUTPUT.PUT_LINE('Sorry but that is an incorrect postcode! Format A9A');
    -- GOTO exit;
    -- END IF;
    WHEN (length(substr(input_post_code,1,instr(input_post_code,' ')-1)) = 4
    AND instr(alphabet_string,substr(input_post_code,1,1)) != 0
    AND instr(alphabet_string,substr(input_post_code,2,1)) != 0
    AND instr(number_string,substr(input_post_code,3,1)) != 0
    AND instr(number_string,substr(input_post_code,4,1)) != 0)
    THEN
    DBMS_OUTPUT.PUT_LINE('We have a valid postcode in the format AA99')
    -- ELSE
    -- DBMS_OUTPUT.PUT_LINE('Sorry but that is an incorrect postcode! Format AA99');
    -- GOTO exit;
    -- END IF;
    WHEN (length(substr(input_post_code,1,instr(input_post_code,' ')-1)) = 4
    AND instr(alphabet_string,substr(input_post_code,1,1)) != 0
    AND instr(alphabet_string,substr(input_post_code,2,1)) != 0
    AND instr(number_string,substr(input_post_code,3,1)) != 0
    AND instr(alphabet_string,substr(input_post_code,4,1)) != 0)
    THEN
    DBMS_OUTPUT.PUT_LINE('We have a valid postcode in the format AA9A')
    -- ELSE
    -- DBMS_OUTPUT.PUT_LINE('Sorry but that is an incorrect postcode! Format AA9A');
    -- GOTO exit;
    -- END IF;
    END;
    -- Check last part of format, should be AA9
    IF (instr(number_string,substr(input_post_code,1,1)) != 0
    AND instr(alphabet_string,substr(input_post_code,2,1)) != 0
    AND instr(alphabet_string,substr(input_post_code,3,1)) != 0)
    THEN
    DBMS_OUTPUT.PUT_LINE('End part of the postcode is in the correct format, 9AA');
    ELSE
    DBMS_OUTPUT.PUT_LINE('End part of the postcode is in the wrong format!');
    END IF;
    <<exit>>
    DBMS_OUTPUT.PUT_LINE('Please try again');
    END;
    However, I'm getting the following error:
    LINE/COL ERROR
    37/6 PLS-00103: Encountered the symbol "WHEN" when expecting one of
    the following:
    := . ( % ;
    On a second note, can I not have the ELSE structure embedded within the case (currently commented out)?
    Thanks very much in advance.
    Dev

    Fixed code:
    CREATE OR REPLACE procedure postcode_validate_2 (input_post_code VARCHAR2) as
    alphabet_string VARCHAR2(52) := 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvxwyz';
    number_string VARCHAR2(10) := '012345789';
    last_part_postcode VARCHAR2(3) := NULL;
    BEGIN
    IF INSTR(input_post_code,' ') = 0
    THEN
    DBMS_OUTPUT.PUT_LINE('We need a space in the postcode please');
    GOTO exit;
    ELSIF LENGTH(SUBSTR(input_post_code,instr(input_post_code,' ')+1)) > 3
    THEN
    DBMS_OUTPUT.PUT_LINE('Last part of postcode can only be 3 characters');
    GOTO exit;
    ELSE
    last_part_postcode := SUBSTR(input_post_code,instr(input_post_code,' ')+1);
    END IF;
    CASE
    WHEN (length(substr(input_post_code,1,instr(input_post_code,' ')-1)) = 2
    AND instr(alphabet_string,substr(input_post_code,1,1)) != 0
    AND instr(number_string,substr(input_post_code,2,1)) != 0)
    THEN
    DBMS_OUTPUT.PUT_LINE('We have a valid postcode in the format A9');
    -- ELSE
    -- DBMS_OUTPUT.PUT_LINE('Sorry but that is an incorrect postcode! Format A9');
    -- GOTO exit;
    -- END IF;
    WHEN (length(substr(input_post_code,1,instr(input_post_code,' ')-1)) = 3
    AND instr(alphabet_string,substr(input_post_code,1,1)) != 0
    AND instr(alphabet_string,substr(input_post_code,2,1)) != 0
    AND instr(number_string,substr(input_post_code,3,1)) != 0)
    THEN
    DBMS_OUTPUT.PUT_LINE('We have a valid postcode in the format AA9');
    -- ELSE
    -- DBMS_OUTPUT.PUT_LINE('Sorry but that is an incorrect postcode! Format AA9');
    -- GOTO exit;
    -- END IF;
    WHEN (length(substr(input_post_code,1,instr(input_post_code,' ')-1)) = 3
    AND instr(alphabet_string,substr(input_post_code,1,1)) != 0
    AND instr(number_string,substr(input_post_code,2,1)) != 0
    AND instr(number_string,substr(input_post_code,3,1)) != 0)
    THEN
    DBMS_OUTPUT.PUT_LINE('We have a valid postcode in the format A99');
    -- ELSE
    -- DBMS_OUTPUT.PUT_LINE('Sorry but that is an incorrect postcode! Format A99');
    -- GOTO exit;
    -- END IF;
    WHEN (length(substr(input_post_code,1,instr(input_post_code,' ')-1)) = 3
    AND instr(alphabet_string,substr(input_post_code,1,1)) != 0
    AND instr(number_string,substr(input_post_code,2,1)) != 0
    AND instr(alphabet_string,substr(input_post_code,3,1)) != 0)
    THEN
    DBMS_OUTPUT.PUT_LINE('We have a valid postcode in the format A9A');
    -- ELSE
    -- DBMS_OUTPUT.PUT_LINE('Sorry but that is an incorrect postcode! Format A9A');
    -- GOTO exit;
    -- END IF;
    WHEN (length(substr(input_post_code,1,instr(input_post_code,' ')-1)) = 4
    AND instr(alphabet_string,substr(input_post_code,1,1)) != 0
    AND instr(alphabet_string,substr(input_post_code,2,1)) != 0
    AND instr(number_string,substr(input_post_code,3,1)) != 0
    AND instr(number_string,substr(input_post_code,4,1)) != 0)
    THEN
    DBMS_OUTPUT.PUT_LINE('We have a valid postcode in the format AA99');
    -- ELSE
    -- DBMS_OUTPUT.PUT_LINE('Sorry but that is an incorrect postcode! Format AA99');
    -- GOTO exit;
    -- END IF;
    WHEN (length(substr(input_post_code,1,instr(input_post_code,' ')-1)) = 4
    AND instr(alphabet_string,substr(input_post_code,1,1)) != 0
    AND instr(alphabet_string,substr(input_post_code,2,1)) != 0
    AND instr(number_string,substr(input_post_code,3,1)) != 0
    AND instr(alphabet_string,substr(input_post_code,4,1)) != 0)
    THEN
    DBMS_OUTPUT.PUT_LINE('We have a valid postcode in the format AA9A');
    -- ELSE
    -- DBMS_OUTPUT.PUT_LINE('Sorry but that is an incorrect postcode! Format AA9A');
    -- GOTO exit;
    -- END IF;
    END CASE;
    -- Check last part of format, should be AA9
    IF (instr(number_string,substr(input_post_code,1,1)) != 0
    AND instr(alphabet_string,substr(input_post_code,2,1)) != 0
    AND instr(alphabet_string,substr(input_post_code,3,1)) != 0)
    THEN
    DBMS_OUTPUT.PUT_LINE('End part of the postcode is in the correct format, 9AA');
    ELSE
    DBMS_OUTPUT.PUT_LINE('End part of the postcode is in the wrong format!');
    END IF;
    <<exit>>
    DBMS_OUTPUT.PUT_LINE('Please try again');
    END;
    /As VG2 pointed out you were missing some semicolons.
    Also, CASE input_post_code was replaced with just CASE since you are doing a searched case.
    Also, END at the end of the case statement was replaced with END CASE.

  • Date formats for SQL statements used by recordset object

    Hi,
    Date formatting appears to be quite problematic for Business One.  I did a forum search for date issues and I don't think I saw any of them with an "answered" status.  I have an issue with formatting a date for the creation of an SQL statement that the DI sends to SQL Server 2005.  I need to format a date so that the localization parameters don't matter for either the client machine or SQL Server's machine.  We don't have a problem as long as our machines are localized as USA.
    I have PL 22 and I have a form - ours - where I use the Today() function to fill a date field.  So this is a date that is not entered by the user.  The result of this function is consistent with the localization parameters on my machine.  We have two other date fields on the form where the user must type in the date. 
    As a test, I changed my machine to the UK parameters.  I then set up the language parameters of Business One for English(United Kingdom).  I changed the date format specifications in Business One so that its format is dd/mm/yy.  I then brought up the form and the field that is formatted by the above function arrived in the form's field as dd/mm/yy.  I then typed in the two other dates in the same format and added the record to the database.  The form's table is user-defined. 
    I dismissed the form then brought it back up loaded with the new record.  The date that was entered by the function appeared in USA format (mm/dd/yy).  The dates that were typed in appeared in the Business One format (dd/mm/yy).  This of course is not consistent.
    When I looked at what got into the database, the formats were the opposite.  Weird!  To make matters really confusing, I run an SQL statement within SQL Server Mgt Studio, and use the WHERE clause to filter on the date that was based on the function.  It didn’t matter what format I used for the WHERE clause, the record came up.  Does anyone have any idea about how I can ensure that I always use the correct date format for SQL statements passed by Business One to SQL Server regardless of where in the world the application is being run?
    Thanks,
    Mike

    Ian,
    Here's what I'm concerned about:  I’m using the date in a “WHERE” clause.
    Assume the date is Aug 3, 2007.
    "SELECT * FROM Table WHERE StartDate > ‘8/3/2007’"
    OR
    "SELECT * FROM Table WHERE StartDate > ‘3/8/2007’"
    If the client machine is set up as USA, the today function will provide the date as formatted in the first query.  If the database server is setup as let’s say the UK, I believe that SQL Server query parser will interpret the date as Mar 8, 2007.
    If the client machine is set up as UK, the today function will provide the date as formatted in the second query.  If the database server is setup as let’s say USA, I believe that SQL Server query parser will also interpret the date as Mar 8, 2007.
    In both cases it would be wrong.
    I know I could use the DATEPART function to get the three parts and this will make the code indifferent to the localization specs of the client machine.  I need to then be able to concatenate those date parts for the “WHERE” clause so that the localization specifications of the database server don’t matter.
    Thanks,
    Mike

  • Formatted search

    Hi
    I will be very grateful if someone can help me with this query for a formatted search. The client want the user doing the purchase order to only see certain cost centres. So when a certain user uses SHIFT F2 only a list of certain cost centres must appear for the user to choose from.
    So I have this query -
    SELECT 'OcrCode' =
         CASE
              WHEN T0.UserSign = 55 THEN
              here I need this list - 'HOS' or 'TO' or 'TBC' or 'MC' or 'LOG'
         END
    FROM OPOR T0  INNER JOIN POR1 T1 ON T0.DocEntry = T1.DocEntry
    INNER JOIN OOCR T2 ON T1.OcrCode = T2.OcrCode
    INNER JOIN OUSR T3 ON T0.UserSign = T3.INTERNAL_K
    WHERE T0.[DocNum] = $[OPOR.DocNum]
    But it doesn't work.

    Hi
    Thank you for the replies
    Gordon, your solution works just right but the reason why I needed a case statement is that there are 10 different users who may create a document - sorry I should have explained more carefully. I tried Hoe Pham Huy's query as well but when I shift F2 nothing happens.
    So what is neccessary is -
    - if the usersign = 55 then a list with  'HOS', 'TO', 'TBC', 'MC', 'LOG'
    -if the usersign = 20 then 'LEG', 'HOS'
    and so on....
    It seemed to me that a case statement would best accommodate this requirement but it doesn't seem to work when I try it.
    Is it possible to change your query to accommodate multiple users?
    Regards
    Danie

  • Freight Formatted Search

    Dear All,
    I am trying to do a formatted search on the amount field in the freight screen (Table RDR3) in a sales order (Table ORDR). I have used the below query. Basically i created 2 UDF's (UDF1. a value example 100, UDF2. a discount percentage example 20%) beside the amount field. Now I want the amount field to calculate the below which is to take the 1st UDF value multiplied by the discount percentage to get the discounted value of UDF 1. The rate and currency i need to fetch from the ORDR and i think that's where the problem is.
    DECLARE @Amount AS DECIMAL(38,2)
    DECLARE @Percent AS DECIMAL(38,2)
    DECLARE @Cur AS nvarchar(3)
    DECLARE @Rate AS DECIMAL(38,2)
    SET @Amount=CAST($[rdr3.u_TransportT] AS DECIMAL(38,2))
    SET @Percent=CAST($[rdr3.u_DPerc] AS DECIMAL(38,2))
    set @cur = (select T0.DocCur from ORDR T0 where t0.DocEntry = $[rdr3.docentry] )
    set @rate =  (select T0.DocRate from ORDR T0 where t0.DocEntry = CAST($[rdr3.docentry] AS DECIMAL(38,2)))
    Select case when @cur='USD' then (@Amount * ((100 -@Percent) / 100))
    when @Cur='EUR' then ((@Amount * @Rate) * ((100 -@Percent) / 100))
    else (@Amount / @Rate * ((100 -@Percent) / 100))
    end
    The result im getting is just a 0 without any errors. Any help on this would be mush appreciated.
    If i only need to use one currency i used the below query and it works fine. I get the discounted value in amount field:
    DECLARE @Amount AS DECIMAL(38,2)
    DECLARE @Percent AS DECIMAL(38,2)
    SET @Amount=CAST($[rdr3.u_Amount] AS DECIMAL(38,2))
    SET @Percent=CAST($[rdr3.u_percent] AS DECIMAL(38,2))
    Select  (@Amount * ((100 -@Percent) / 100))
    Kindest Regards
    Jimmy

    Beni,
    Thanks for the reply.
    I am not taking the local currency into account in the above query, all of them are foreign currencies.
    If i remove the reference to the ORDR table and dont use the CAST or IF statement it works fine. But that would only be useful for 1 currency.

  • Formatted Search calling a stored procedure

    Hello all,
    I am having a problem getting a formatted search to work when I call a stored procedure from SAP (I am doing this because of a bug we discovered and need to get the client live Feb 1).  The stored procedure works fine when passing variables from within SQL Server, but fails when using SAP.  The problem seems to be where I need to get a UDF from the item master table, but not sure.  Thanks in advance
    The call from SAP query is:
    declare @LineType as varchar(6)
    declare @Width as numeric (19,6)
    declare @LI as numeric (19,6)
    declare @LN as numeric (19,6)
    declare @LD as numeric (19,6)
    declare @HI as numeric (19,6)
    declare @HN as numeric (19,6)
    declare @HD as numeric (19,6)
    declare @QtyOrd as numeric (19,6)
    Select @Width = $[OITM.U_WTH]
    FROM OITM
    WHERE OITM.ItemCode = $[$38.1]
    exec TBC_CHOP
    @Width,
    @LineType = $[$38.U_LINETYPE],
    @LI =$[$38.U_LI],
    @LN =$[$38.U_LN],
    @LD =$[$38.U_LD],
    @HI = $[$38.U_HI],
    @HN = $[$38.U_HN],
    @HD = $[$38.U_HD],
    @QtyOrd = $[$38.U_QTYORD]
    The stored procedure is:
    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go
    -- =============================================
    -- Author:          <Mark Rueff
    -- Create date: <Jan 5, 2009>
    -- Description:     <Chop Calculation>
    -- =============================================
    ALTER PROCEDURE [dbo].[TBC_Chop]
         -- Add the parameters for the stored procedure here
    @LineType AS varchar(6) ,
    @Width AS numeric(19, 6),
    @LI AS numeric(19, 6) ,
    @LN AS numeric(19, 6),
    @LD AS numeric(19, 6),
    @HI AS numeric(19, 6),
    @HN AS numeric(19, 6),
    @HD AS numeric(19, 6) ,
    @QtyOrd AS numeric(19,6)
    AS
    BEGIN
         -- SET NOCOUNT ON added to prevent extra result sets from
         -- interfering with SELECT statements.
         SET NOCOUNT ON;
        -- Insert statements for procedure here
    SELECT
    CASE
    WHEN @LineType = 'c' AND @Width >= 3
    THEN ROUND((((ROUND((((@Width * 10) + 5) / 10), 1) * 8) + (((@LI + (@LN / @LD)) + (@HI + (@HN / @HD))) * 2) + 4) / 12) * @QtyOrd, 1)
    WHEN @LineType = 'c' AND @Width < 3
    THEN
        CASE
        WHEN RIGHT(CONVERT(int,(@Width * 10)), 1) > 0 AND RIGHT(CONVERT(int, (@Width * 10)), 1) < 5
        THEN ROUND(((((ROUND((@Width - 0.5), 0) + 0.5 * 8)  + (((@LI + (@LN / @LD)) + (@HI + (@HN / @HD))) * 2) + 4) / 12) * @QtyOrd), 1)
        ELSE ROUND((((ROUND(@Width, 0) * 8) + (((@LI + (@LN / @LD)) + (@HI + (@HN / @HD))) * 2) + 4) / 12) * @QtyOrd, 1)
        END
    WHEN @LineType = 'j' AND @Width >= 3
    THEN ROUND((((ROUND((((@Width * 10) + 5) / 10), 1) * 8) + (((@LI + (@LN / @LD)) + (@HI + (@HN / @HD))) * 2) + 4) / 12) * @QtyOrd, 1)
    WHEN @LineType = 'j' AND @Width < 3
    THEN
        CASE
        WHEN RIGHT(CONVERT(int, (@Width * 10)), 1) > 0 AND  RIGHT(CONVERT(int, (@Width * 10)), 1) < 5
        THEN ROUND(((((ROUND((@Width - 0.5), 0) + 0.5 * 8) + (((@LI + (@LN / @LD)) + (@HI + (@HN / @HD))) * 2) + 4) / 12) * @QtyOrd), 1)
        ELSE ROUND((((ROUND(@Width, 0) * 8) + (((@LI + (@LN / @LD)) + (@HI + (@HN / @HD))) * 2) + 4) / 12) * @QtyOrd, 1)
        END
    WHEN @LineType = 'r'
    THEN ROUND(((((@Width * 2) + (@LI + (@LN / @LD))) / 12) * @QtyOrd), 1)
    WHEN @LineType = 's'
    THEN @QtyOrd * 1.5
    WHEN @LineType = 'o'
    THEN @QtyOrd
    WHEN @LineType = 'l'
    THEN @QtyOrd
    ELSE 0
    END
    END

    Mark,
    I believe the syntax of your formatted search is not right. I guess you are trying to get the U_Width from Item Master and the other values from the current form.
    SELECT @Width = T0.U_WTH FROM [dbo].[OITM] T0.WHERE T0.ItemCode = $[$38.1.0]
    EXEC TBC_CHOP @Width, $[$38.U_LINETYPE.0], $[$38.U_LI.0], $[$38.U_LN.0],
    $[$38.U_LD.0], $[$38.U_HI.0], $[$38.U_HN.0], $[$38.U_HD.0], $[$38.U_QTYORD.Number]
    If you see I have added a third parameter which is the Type to the formatted seach field selection $[$Item.Column.Type]
    I have made then all 0 but you may change it as per the col type.  This Type should be 0 for Char type columns, Number for numeric columns and Date for Date type cols
    Suda

  • Formatted Search on TaxCode Ship To addess

    Hi Experts,
    I have a Customer who wants a Formatted Search Linked to the Ship To address. This Formatted Search must populate TaxCode 'TST' when the State in the 'Ship To' address are Texas. When it is anything other than Texas, it must populate 'EX'.
    The following is what I started, but it does not just populate the 'EX' or 'TST'. (It brings up a table....)
    SELECT CASE WHEN $[CRD1.State] <> 'TX' THEN 'EX' ELSE 'TST' END
    FROM CRD1
    Any help would be greatly appreciated.
    Thanks,
    Marli

    Hi Sridharan & Gordon,
    Thanks for the quick reply! I did try both of the queries, but I must be doing something wrong... It populates 'EX' for state Texas and the other states...
    Here is what I'm doing...
    I link the Formatted Search to the TaxCode field in the Ship To Address. I tried this without 'Auto Refresh' and with 'Auto Refresh' 'when Exiting Column State'. And I selected 'Display saved Userdefined values'...
    When I change the State to Texas, and click on the Magnifying glass, it populates 'EX'. It does the same for the other states.
    Thanks for your help!
    Marli

  • How can you change a drop down menu's selection in a case statement?

    Hi,
    I am trying to an array finding vi. This VI will take an existing xml file and after the user has selected his/her equipment, input, output, and frequency it will put all of those options into a string and search the xml file for that exact array name and display it on an output screen. The problem I am having is that my input and outputs selection needs to be a little different depending upon the equipment selected. I thought that I could use a case statement to change the input and output selectable options, but I have run into many snags with it. For one everytime I place a new Input and Output drop down menu in the case statement it wants to place a new one in the front panel (I only want one input and output not three I have two inputs and outputs hidden right now). I believe I am using the case statement wrong... Can anyone help change my input and output selectable options depending upon the equipment selected. Attached is my xml file, Array Find.vi (the original one), and Array Find_Test.vi (this is the one I am trying to modify).
    Thanks,
    dlovell
    Solved!
    Go to Solution.
    Attachments:
    Find Array.zip ‏126 KB

    Hi dlovell,
    There are 2 key things I'd recommend for the code - using property nodes to edit the strings in the combo boxes.  Something like the following snippet:
    Also, check your CPU in task manager when running the code.  It will eat a whole core of your machine (25% quad core, 50% dual, 100% single) - that is because you are running the while loop and polling the control as fast as Windows will allow you to.  Using Event Structures is a much more efficient way of working in this example.
    Check out the MOD attached 
    Regards,
    Peter D
    Attachments:
    MOD_Find Array.vi ‏28 KB

  • How to club 2 queries in one formatted search query

    Hi All,
    I have inserted a formatted search in the stock transfer for chnaging the 'From warehouse' based on series.
    I have written following query for same,
    SELECT $[$18.1.0]='08' WHERE $[OWTR.series] ='46'
    It is working Fine
    I want ot use same concept for selecting other based on other warehouse
    e.g
    SELECT $[$23.5.1]='02' WHERE $[OWTR.series] ='45'
    But I am not able to club these queries on one formatted search query can anybody help to group it in one formatted search query....
    Thanks and Regards,
    Atul Joshi
    Edited by: Atul Joshi on Dec 23, 2008 5:20 PM

    Hi Atul,
    You could define the quey like this
    SELECT
    CASE
             WHEN $[OWTR.series]='46' THEN '08'
             WHEN $[OWTR.series]='45' then '02'
    end
    from OWTR
    Regards,
    Vijay kumar
    SAP Business One Forums Team

  • More than one variable at a time in case statement

    hi i am using oracle 10g database.
    can it be possible ?
         in if condition we can have more than one variable in one condition
           if a=100 then
               b:=200;
               c:=300;
           end if;
    how it will be in case statement ? i have searched lot on internet but didnt get
    case
    when a=100 then 200, 300 ... ???
    thanks

    Hi FRNzzz!! wrote:
    hi i am using oracle 10g database.
    can it be possible ?
    in if condition we can have more than one variable in one condition
    if a=100 then
    b:=200;
    c:=300;
    end if; how it will be in case statement ? i have searched lot on internet but didnt get
    case
    when a=100 then 200, 300 ... ???
    thanksnot sure if I got your question correctly, is this what you are looking for?
    SQL> ed
    Wrote file afiedt.buf
      1  declare
      2      a number := 100;
      3      b number;
      4      c number;
      5  begin
      6      case
      7        when a = 100 then
      8          b := 200;
      9          c := 300;
    10        when a = 0 then
    11          b := 300;
    12          c := 400;
    13        else
    14          b := 0;
    15          c := 0;
    16      end case;
    17  dbms_output.put_line('a :'||a||' b :'||b||' c :'||c);
    18* end;
    SQL> /
    a :100 b :200 c :300
    PL/SQL procedure successfully completed.

  • Case statement problems in oracle forms 6i

    Hello,
    Any one can help me that how to use case statment in Oracle forms 6i.
    i have read one thread and there was no proper solution so could any one please let me know to use case statement.
    Please also let me know which category i should search for FORMS 6i.
    when i'm using below code with cursor then i'm getting error 103
    database:=11g
    application := forms 6i
    operating system:= win Xp
    code is given below :-
    cursor c1 is
    select nc.nomenclature_id,
    nvl(nc.category_value, 0) master,
    nvl(nc2.category_value, 0) case,
    nvl(nc3.category_value, 0) bundle,
    case
    when nvl(nc.category_value, 0) > 0 and
    nvl(nc2.category_value, 0) > 0 and
    nvl(nc3.category_value, 0) > 0 then
    'A' --All packouts Master, Case, Bundle
    when nvl(nc.category_value, 0) > 0 and
    nvl(nc2.category_value, 0) > 0 and
    nvl(nc3.category_value, 0) = 0 then
    'B' --Both Master and Case
    when nvl(nc2.category_value, 0) = 0 and
    nvl(nc3.category_value, 0) = 0 then
    'C' --Master Case Only
    else
    'N'
    end code
    from nomn_category nc, --master case
    (select nc2.nomenclature_id,
    nc2.category_value
    from nomn_category nc2
    where nc2.category_id = '230732') nc2,
    (select nc3.nomenclature_id,
    nc3.category_value
    from nomn_category nc3
    where nc3.category_id = '236566') nc3
    Edited by: Rahul on Feb 3, 2012 7:18 PM
    Edited by: Rahul on Feb 3, 2012 7:20 PM

    hello Andreas,
    It is ok but i dont have to use view there.
    i need to use without view, because this code has to be use in FORMS6i.
    But Forms6i doesn't support to case function. i'm newbie in Forms.
    If you can convert to below bold one portion(case) into decode then please help me or
    if you have any idea about Forms6i then please send me any link where is given explanation about excel report that how to make excel report through Forms6i step by step and that excel report should be generate on any dynamic path which is given by user:-
    cursor c1 is
    select nc.nomenclature_id,
    nvl(nc.category_value, 0) master,
    nvl(nc2.category_value, 0) case,
    nvl(nc3.category_value, 0) bundle,
    case
    when nvl(nc.category_value, 0) > 0 and
    nvl(nc2.category_value, 0) > 0 and
    nvl(nc3.category_value, 0) > 0 then
    *'A'*
    when nvl(nc.category_value, 0) > 0 and
    nvl(nc2.category_value, 0) > 0 and
    nvl(nc3.category_value, 0) = 0 then
    *'B' --Both Master and Case*
    when nvl(nc2.category_value, 0) = 0 and
    nvl(nc3.category_value, 0) = 0 then
    *'C'*
    else
    *'N'*
    end "code"
    from nomn_category nc,
    (select nc2.nomenclature_id,
    nc2.category_value
    from nomn_category nc2
    where nc2.category_id = '230732') nc2,
    (select nc3.nomenclature_id,
    nc3.category_value
    from nomn_category nc3
    where nc3.category_id = '236566') nc3
    thanks

  • Should I use a CASE statement to accomplish or something else

    So I have the following query right now
    select *
        --bulk collect into possession_leaders
        from
               select    distinct
                         opt.team_id,
                         sch.game_code,
                         sch.game_code_1032,
                         sch.home_team_id_1032,
                         sch.home_team_id,
                         sch.home_team_name,
                         sch.home_team_nickname,
                         sch.home_team_abbrev,
                         sch.away_team_id_1032,
                         sch.away_team_id,
                         sch.away_team_name,
                         sch.away_team_nickname,
                         sch.away_team_abbrev,
                         opt.possession,
                         rank () over (order by possession desc) as rankings_order
              from 
                       customer_data.cd_soccer_schedule sch,
                       soccer.soccer_optical_team_gm_stats opt
              where    sch.game_code = opt.game_code
              and      sch.season_id = 200921
              and      opt.possession is not null
              order by rankings_order asc
            )It outputs the following (Sorry for it being so cramped together):
    **Note: Columns are in the same order as the query, I didn't post the column names b/c everything would look even sloppier then it does
    1     5358     870986     2009050606     6     5359     Kansas City     Wizards     KC     5     5358     D.C.     United     DC     69.5%     1
    2     5354     870945     2009040501     1     5354     Chicago     Fire     Chi     10     5362     New York     Red Bulls     RB     58.1%     2
    3     5721     870983     2009050211     11     5363     San Jose     Earthquakes     SJ     17     5721     Chivas USA          Chv     56%     3
    4     5360     870984     2009050207     7     5360     Los Angeles     Galaxy     LA     10     5362     New York     Red Bulls     RB     55.6%     4
    5     5361     870961     2009041705     5     5358     D.C.     United     DC     9     5361     New England     Revolution     NE     55.4%     5
    6     5362     870988     2009050810     10     5362     New York     Red Bulls     RB     11     5363     San Jose     Earthquakes     SJ     50.1%     6
    7     5363     870988     2009050810     10     5362     New York     Red Bulls     RB     11     5363     San Jose     Earthquakes     SJ     49.9%     7
    8     5358     870961     2009041705     5     5358     D.C.     United     DC     9     5361     New England     Revolution     NE     44.6%     8
    9     5362     870984     2009050207     7     5360     Los Angeles     Galaxy     LA     10     5362     New York     Red Bulls     RB     44.4%     9
    10     5363     870983     2009050211     11     5363     San Jose     Earthquakes     SJ     17     5721     Chivas USA          Chv     44%     10
    11     5362     870945     2009040501     1     5354     Chicago     Fire     Chi     10     5362     New York     Red Bulls     RB     41.9%     11
    12     5359     870986     2009050606     6     5359     Kansas City     Wizards     KC     5     5358     D.C.     United     DC     30.5%     12What i'm trying to do is basically have the output formated so that when the team_id column matches the either the home_team_id or away_team_id colum i want the following columns to be renamed as:
    so if team_id = home_team_id for example then I want the following...
    sch.home_team_id_1032 as team_code_1032,
    sch.home_team_id as team_code,
    sch.home_team_name as team_name,
    sch.home_team_nickname as team_nickname,
    sch.home_team_abbrev as team_abbrev
    and then the away team columns would be...
    sch.away_team_id_1032 as opp_team_code_1032,
    sch.away_team_id as opp_team_code,
    sch.away_team_name as opp_team_name,
    sch.away_team_nickname as opp_team_nickname,
    sch.away_team_abbrev as opp_team_abbrev
    and same thing vice versa if the team_id column matches the away_team_id
    How is the best way to go about this? W/a case statement? and if so can someone please post the logic/

    Hi,
    user652714 wrote:
    So I have the following query right now
    select *
    --bulk collect into possession_leaders
    from
    select    distinct
    opt.team_id,
    sch.game_code,
    sch.game_code_1032,
    sch.home_team_id_1032,
    sch.home_team_id,
    sch.home_team_name,
    sch.home_team_nickname,
    sch.home_team_abbrev,
    sch.away_team_id_1032,
    sch.away_team_id,
    sch.away_team_name,
    sch.away_team_nickname,
    sch.away_team_abbrev,
    opt.possession,
    rank () over (order by possession desc) as rankings_order
    from 
    customer_data.cd_soccer_schedule sch,
    soccer.soccer_optical_team_gm_stats opt
    where    sch.game_code = opt.game_code
    and      sch.season_id = 200921
    and      opt.possession is not null
    order by rankings_order asc
    )It outputs the following (Sorry for it being so cramped together):
    **Note: Columns are in the same order as the query, I didn't post the column names b/c everything would look even sloppier then it doesAre you sure?
    The 6th column in the query is home_team name; the 6th column of the output has values like 5359 and 5354. Did you perhaps duplicate the rankings_iorder column at the beginning of the results?
    Why don't you simplify the problem. Instead of 15 or 16 columns, 10 of which are twins (5 pairs of 2 columns), why don't you post a problem with 6 columns, 4 of which are twins? Pick short columns, such as home_team_abbrev rather than home_team_name.
    Adding the other columns later should be easy; merely a matter of coping one of the columns ion the solution.
    Whenever you have a problem, post some sample data and the results you want from that data.
    In this case, the sample data can be about 6 columns from the result set below. I'll bet you can make a good sample set with fewer than 12 rows, also.
    1     5358     870986     2009050606     6     5359     Kansas City     Wizards     KC     5     5358     D.C.     United     DC     69.5%     1
    2     5354     870945     2009040501     1     5354     Chicago     Fire     Chi     10     5362     New York     Red Bulls     RB     58.1%     2
    3     5721     870983     2009050211     11     5363     San Jose     Earthquakes     SJ     17     5721     Chivas USA          Chv     56%     3
    4     5360     870984     2009050207     7     5360     Los Angeles     Galaxy     LA     10     5362     New York     Red Bulls     RB     55.6%     4
    5     5361     870961     2009041705     5     5358     D.C.     United     DC     9     5361     New England     Revolution     NE     55.4%     5
    6     5362     870988     2009050810     10     5362     New York     Red Bulls     RB     11     5363     San Jose     Earthquakes     SJ     50.1%     6
    7     5363     870988     2009050810     10     5362     New York     Red Bulls     RB     11     5363     San Jose     Earthquakes     SJ     49.9%     7
    8     5358     870961     2009041705     5     5358     D.C.     United     DC     9     5361     New England     Revolution     NE     44.6%     8
    9     5362     870984     2009050207     7     5360     Los Angeles     Galaxy     LA     10     5362     New York     Red Bulls     RB     44.4%     9
    10     5363     870983     2009050211     11     5363     San Jose     Earthquakes     SJ     17     5721     Chivas USA          Chv     44%     10
    11     5362     870945     2009040501     1     5354     Chicago     Fire     Chi     10     5362     New York     Red Bulls     RB     41.9%     11
    12     5359     870986     2009050606     6     5359     Kansas City     Wizards     KC     5     5358     D.C.     United     DC     30.5%     12What i'm trying to do is basically have the output formated so that when the team_id column matches the either the home_team_id or away_team_id colum i want the following columns to be renamed as:
    so if team_id = home_team_id for example then I want the following...
    sch.home_team_id_1032 as team_code_1032,
    sch.home_team_id as team_code,
    sch.home_team_name as team_name,
    sch.home_team_nickname as team_nickname,
    sch.home_team_abbrev as team_abbrev
    and then the away team columns would be...
    sch.away_team_id_1032 as opp_team_code_1032,
    sch.away_team_id as opp_team_code,
    sch.away_team_name as opp_team_name,
    sch.away_team_nickname as opp_team_nickname,
    sch.away_team_abbrev as opp_team_abbrev
    and same thing vice versa if the team_id column matches the away_team_idSorry, column names have to stay the same throughout the query. This is a very unusual request, and it's hard for me to imagine what you really want.
    You miight be able to do a UNION and add rows that look like column headings.
    No kidding, you have to post the results you want.
    No matter how clear an idea you have of what those resutls should be, no one else knows, and it's much easier to post the correct results than to accurately describe them.

Maybe you are looking for

  • [SOLVED] KDE won't start after Xorg update(nvidia driver)

    After update, I disabled hotplug, with : Section "ServerFlags" Option "AutoAddDevices" "False" EndSection kdm starts normally, i can write login/password, i see kde boot splash, then desktop shows and after about 10 secs it is killed and goes back to

  • Can anyone who has a 5530 just check......

    that when they go into settings>Application manager>Installed files....tell me what happens cos mine just goes blank so I have to press the red button to go to standby and then wait for the phone to unfreeze itself to get the screen to touch work aga

  • Where is the document.write calling file?

    I an new on the job and still finding my way around the files. I need to edit an html file. I find the file, (or, what I think is the file) but it is a document.write calling another page. I can't find the actual page of code to edit. It is a simple

  • Create Physical Inv document

    Hi, I have tried creating a phy. inv doc using both  - BAPI_MATPHYSINV_CREATE_MULT and using - BAPI_MATPHYSINV_CREATE Both the times I got a success message with the document number. I did a commit. When I go to mi03/ or ikpf, I dont find the documen

  • Required to create a script for base table update using XMLSTORE package.

    Hi can anybody provide me some help full suggestion on how to update base table using XMLSTORE package. I created a simple script for Employee table and can able to do the basic operation like Insert and update on the table. Query is as follow's DECL