TSQL: Desired Result

Hi Friends,
I have below sample table
TableA
Id
Value
a
1
a
2
a
3
b
4
b
5
b
6
ResultTableB
ID
columnA
columnB
columnC
a
1
2
3
b
4
5
6
each   ID will only have three values with it. 
Please provide query to achieve this
 

CREATE TABLE Foo (
  foo_type CHAR(1),
  foo_value INT);
INSERT INTO Foo VALUES('A', 1);
INSERT INTO Foo VALUES('A', 2);
INSERT INTO Foo VALUES('A', 3);
INSERT INTO Foo VALUES('A', 4);
INSERT INTO Foo VALUES('B', 5);
INSERT INTO Foo VALUES('B', 6);
WITH cte
AS
SELECT *,ROW_NUMBER() OVER (PARTITION BY foo_type ORDER BY foo_value ) rn
FROM Foo 
) SELECT foo_type,
  MAX(CASE WHEN rn=1 THEN foo_value END) col1,
  MAX(CASE WHEN rn=2 THEN foo_value END) col2,
  MAX(CASE WHEN rn=3 THEN foo_value END) col3,
  MAX(CASE WHEN rn=4 THEN foo_value END) col4
  FROM cte GROUP BY foo_type 
Best Regards,Uri Dimant SQL Server MVP,
http://sqlblog.com/blogs/uri_dimant/
MS SQL optimization: MS SQL Development and Optimization
MS SQL Consulting:
Large scale of database and data cleansing
Remote DBA Services:
Improves MS SQL Database Performance
SQL Server Integration Services:
Business Intelligence

Similar Messages

  • Function used in SQL query not showing the desired results

    I have created a function that gives me the client id but when i am using the function in the query its not giving me any result i.e. 0 rows but if I execute the function sepreatly and put the result of that function in the qurey it is giving me the desired result please have a look on the following and please reply with you expert opinion:
    FUNCTION CODE:
    create or replace function j2
    (usid in varchar2)
    return varchar2
    is
    cidn_in varchar2(4000) := '';
    ls_sep varchar2(1) := ',';
    cursor predicate_cidn
    is
    select
    logical_schema_id
    from
    CLIENT_REGISTRY cr,
    MEMBER_ROLE_CLIENT_ASSIGNMENT mrca,
    MEMBER m
    where
    mrca.base_client_id = cr.base_client_id and
    mrca.member_id = m.member_id and
    cr.schema_in_use_in = '1' and
    m.active_status_id = 'A' and
    upper(mrca.member_id) = upper(usid);
    BEGIN
    for GET_CIDN in predicate_cidn
    loop
    cidn_in := cidn_in || ls_sep || '''' || GET_CIDN.logical_schema_id || '''';
    end loop;
    cidn_in := substr(cidn_in, 2);
    cidn_in := '('||cidn_in||')';
    --dbms_output.put_line(cidn_in);
    return cidn_in;
    END ;
    SQL> select j2('qaa@adp') from dual;
    J2('QAA@ADP')
    ('BASE18','SDK1TEST','SEETHA1CONFIG','BASE09','KAREN2','SIVACONFIG','BASE19','SD
    K1CTEST','VASU1','KAREN5','EVENTS1CTEST','SDK1','ADA1CONFIG','BASE10','VRB1CONFI
    G','CRU2CONFIG','BASE20','SIVATEST','PCOMCONFIG','KP1CONFIG','KAREN4CONFIG','EVE
    NTS1TEST','SUZ3CONFIG','DONG2CONFIG','ED2CONFIG','SIVACTEST','APDCONFIG','EVENTS
    1CONFIG','ESSCONFIG','SIVA','SDK2CONFIG','ED3CONFIG','RAJ4CONFIG','CBRCONFIG','N
    AMRATA2CONFIG','EMIL1','NAMRATA1CONFIG','SDK2CTEST','BVT2CONFIG','MURUGAN1CONFIG
    ','COB1CONFIG','GABY1TEST','CHR1CONFIG','ED4CONFIG','USE1CONFIG','SDK2TEST','DEM
    O1CONFIG','BERNIE1CONFIG','XA1','CAR2TEST','SDK2','ED5CONFIG','PAY1TEST','PAYXCO
    NFIG','KP1TEST','SEAN1CONFIG','CAR2CTEST','VASU1CONFIG','SEAN2CONFIG','KP1CTEST'
    ,'MAU1CONFIG','CONWCONFIG','PAN1CONFIG','MERAJ2','PRA3CONFIG','SEAN5CONFIG','KP1
    ','PRA4CONFIG','CAR2CONFIG','PRA2CONFIG','SEAN6CONFIG','PRA3TEST','RPT','GABY1CT
    EST','SDK3CONFIG','PRA2TEST','SEAN9CONFIG','CAR2','LV1CONFIG','PRA3CTEST','DONG1
    CONFIG','TE1CONFIG','MERAJ2CONFIG','VIV1CONFIG','GABY1','SEAN2','PRA2CTEST','PRA
    3','RPTCONFIG','PRA4CTEST','SEAN3','MITA1CONFIG','PRA2','RPTCTEST','PCOM1CONFIG'
    ,'SS2CONFIG','PAY1CONFIG','SEAN7','ANNCONFIG','BASE11','BASE02','LV2CONFIG','RPT
    TEST','IMPECONFIG','SUR1CONFIG','SREEK2CONFIG','BASE03','SRINU3CONFIG','BDCONFIG
    ','JAY1CONFIG','AMMAN1','PRA1TEST','WPGCONFIG','BASE12','MP5CONFIG','MERAJ1','SR
    INU2CONFIG','XA1CONFIG','RAJ1CONFIG','WPGCTEST','BASE04','CHRIS','RAJSCONFIG','P
    ANKAJ','BASE13','WPGTEST','RAJ3CONFIG','WPG','BASE14','VASU2CONFIG','SRINU1CONFI
    G','BASE05','PRA4TEST','VASU1TEST','PRA5CONFIG','NISH1CONFIG','CHRISCONFIG','SDK
    3TEST','RAJ3TEST','KP2CONFIG','BASE06','DEFPCONFIG','NISH2CONFIG','CHRISCTEST','
    WPSCONFIG','VASU2TEST','BASE15','GABY1CONFIG','PRA5TEST','MITA2CONFIG','BASE07',
    'VASU1CTEST','KP2TEST','VASU2CTEST','LAURA3CONFIG','BASE16','CHRISTEST','WPSTEST
    ','VASU2','KP2CTEST','EVENTS1','BASE17','RAJ2CONFIG','WPSCTEST','BASE08','SREEK1
    CONFIG','ADVE','PRA4','SDK1CONFIG','KP2','KAREN1','CRU1CONFIG','WPS')
    Now if i put the results (cut and paste )in the query it gives me the results
    SQL> select count(*) from baseclient.address_detail where cidn in ('BASE18','SDK1TEST','SEETHA1CONFIG','BASE09','KAREN2','SIVACONFIG','BASE19','SD
    2 K1CTEST','VASU1','KAREN5','EVENTS1CTEST','SDK1','ADA1CONFIG','BASE10','VRB1CONFI
    3 G','CRU2CONFIG','BASE20','SIVATEST','PCOMCONFIG','KP1CONFIG','KAREN4CONFIG','EVE
    4 NTS1TEST','SUZ3CONFIG','DONG2CONFIG','ED2CONFIG','SIVACTEST','APDCONFIG','EVENTS
    5 1CONFIG','ESSCONFIG','SIVA','SDK2CONFIG','ED3CONFIG','RAJ4CONFIG','CBRCONFIG','N
    6 AMRATA2CONFIG','EMIL1','NAMRATA1CONFIG','SDK2CTEST','BVT2CONFIG','MURUGAN1CONFIG
    7 ','COB1CONFIG','GABY1TEST','CHR1CONFIG','ED4CONFIG','USE1CONFIG','SDK2TEST','DEM
    O1CONFIG','BERNIE1CONFIG','XA1','CAR2TEST','SDK2','ED5CONFIG','PAY1TEST','PAYXCO
    8 9 NFIG','KP1TEST','SEAN1CONFIG','CAR2CTEST','VASU1CONFIG','SEAN2CONFIG','KP1CTEST'
    10 ,'MAU1CONFIG','CONWCONFIG','PAN1CONFIG','MERAJ2','PRA3CONFIG','SEAN5CONFIG','KP1
    11 ','PRA4CONFIG','CAR2CONFIG','PRA2CONFIG','SEAN6CONFIG','PRA3TEST','RPT','GABY1CT
    12 EST','SDK3CONFIG','PRA2TEST','SEAN9CONFIG','CAR2','LV1CONFIG','PRA3CTEST','DONG1
    13 CONFIG','TE1CONFIG','MERAJ2CONFIG','VIV1CONFIG','GABY1','SEAN2','PRA2CTEST','PRA
    14 3','RPTCONFIG','PRA4CTEST','SEAN3','MITA1CONFIG','PRA2','RPTCTEST','PCOM1CONFIG'
    15 ,'SS2CONFIG','PAY1CONFIG','SEAN7','ANNCONFIG','BASE11','BASE02','LV2CONFIG','RPT
    16 TEST','IMPECONFIG','SUR1CONFIG','SREEK2CONFIG','BASE03','SRINU3CONFIG','BDCONFIG
    17 ','JAY1CONFIG','AMMAN1','PRA1TEST','WPGCONFIG','BASE12','MP5CONFIG','MERAJ1','SR
    18 INU2CONFIG','XA1CONFIG','RAJ1CONFIG','WPGCTEST','BASE04','CHRIS','RAJSCONFIG','P
    19 ANKAJ','BASE13','WPGTEST','RAJ3CONFIG','WPG','BASE14','VASU2CONFIG','SRINU1CONFI
    20 G','BASE05','PRA4TEST','VASU1TEST','PRA5CONFIG','NISH1CONFIG','CHRISCONFIG','SDK
    21 3TEST','RAJ3TEST','KP2CONFIG','BASE06','DEFPCONFIG','NISH2CONFIG','CHRISCTEST','
    22 WPSCONFIG','VASU2TEST','BASE15','GABY1CONFIG','PRA5TEST','MITA2CONFIG','BASE07',
    23 'VASU1CTEST','KP2TEST','VASU2CTEST','LAURA3CONFIG','BASE16','CHRISTEST','WPSTEST
    24 ','VASU2','KP2CTEST','EVENTS1','BASE17','RAJ2CONFIG','WPSCTEST','BASE08','SREEK1
    25 CONFIG','ADVE','PRA4','SDK1CONFIG','KP2','KAREN1','CRU1CONFIG','WPS');
    COUNT(*)
    228
    BUT if I user the function it gives me no results
    0 rows selected and its taking a loon time to reurn

    This appears to be a duplicate of the question in this thread
    Re: VPD issue Need Assistance ASAP
    where I wrote
    "Your function returns a single string that happens to have a bunch of commas and quotes in it. An IN list generally requires a list of strings, which your function doesn't return.
    You could rewrite the function to be a pipelined table function and then do
    select count(*)
    from baseclient.address_detail
    where cidn in (SELECT cidn
    FROM TABLE(<<your pipelined table function>>))
    However, I would expect it to be easier not to wrap all this into a function and just have your IN clause be the logic in your predicate_cidn cursor.
    Justin
    "

  • Without using SubReport or SQL Command in Main Report, get desired results without duplicating

    It seems so simple.  I just need the cost, at a certain time (based on a parameter), for each item.  I wrote a SQL Command that works beautifully, but when it connects to the existing report, it slows to a horrible crawl and cannot be used for tables with over 4 million records.  Here is the SQL Command that provides the desired results:
    SELECT TOP 1 WITH TIES "INVENTITEMPRICE"."ITEMID", "INVENTITEMPRICE"."PRICETYPE", "INVENTITEMPRICE"."MARKUP", "INVENTITEMPRICE"."PRICEUNIT", "INVENTITEMPRICE"."PRICE", "INVENTITEMPRICE"."PRICEQTY", "INVENTITEMPRICE"."ACTIVATIONDATE", "INVENTITEMPRICE"."DATAAREAID"
    FROM ("AX09PROD"."dbo"."INVENTITEMPRICE" "INVENTITEMPRICE" INNER JOIN "AX09PROD"."dbo"."INVENTTABLE" "INVENTTABLE" ON (("INVENTITEMPRICE"."ITEMID"="INVENTTABLE"."ITEMID") AND ("INVENTITEMPRICE"."DATAAREAID"="INVENTTABLE"."DATAAREAID")))
    WHERE  ("INVENTITEMPRICE"."DATAAREAID"=N'TMC' AND "INVENTITEMPRICE"."PRICETYPE"=0 AND "INVENTITEMPRICE"."ACTIVATIONDATE"<={?As Of Date})
    ORDER BY ROW_NUMBER () OVER(PARTITION BY "INVENTITEMPRICE"."ITEMID" ORDER BY "INVENTITEMPRICE"."ACTIVATIONDATE" DESC)
    I've attached the report with saved data.  However, when I remove the restrictions of just certain items, it is unusable as it is SO SLOW!
    I can also get the desired results from using a subreport but it takes forever to export due to the number of records/items.  Whenever possible, I avoid subreports for this reason.  I've attached that report with data as well.
    Please be patient as I'm not savvy in SQL, but decent in generating reports.  What am I doing wrong?  This seems SO simple.  The premise is that I want the corresponding information based on the date entered:  If the date entered is 3/15/2014, the result should be 91.15 as indicated below.  I'd simply like this value to be placed in a formula per item.
    Item 80014:
    Activation Date
    Cost Price
    6/2/2014
    104.43
    4/1/2014
    91.58
    3/1/2014
    91.15
    2/1/2014
    92.89
    1/1/2014
    93.57
    Any assistance would be GREATLY appreciated!
    Thanks!
    Teena
    Update:  I was unable to attach the reports with .rpt or .txt extensions.  There were well under 1MB.  Any suggestions?

    hi Teena,
    if you're going the inline subquery route, try something like the following...the last line in the sub-query 'where' clause should in theory take care of matching the correct price based on relating the item id's between your cost price & inventory data. this should leave you with distinct values for each itemid then. hopefully it won't error out as i'm just guessing on the syntax.
    SELECT DISTINCT
    "INVENTTABLE"."ITEMID",
    "INVENTTRANS"."DATAAREAID",
    "INVENTTRANS"."DATEPHYSICAL",
    "INVENTTRANS"."QTY",
    "INVENTTABLE"."ITEMGROUPID",
    "INVENTTABLE"."ITEMNAME",
    "INVENTTRANS"."TRANSREFID",
    "INVENTTRANS"."STATUSISSUE",
    "INVENTTABLE"."ITEMTYPE",
    "INVENTTRANS"."TRANSTYPE",
    "INVENTTRANS"."RECID",
    "INVENTTRANS"."DIRECTION",
    SELECT TOP 1 "INVENTITEMPRICE"."PRICE"
    FROM "AX09PROD"."dbo"."INVENTITEMPRICE" "INVENTITEMPRICE"
    WHERE  "INVENTITEMPRICE"."DATAAREAID" LIKE 'TMC%'
    AND "INVENTITEMPRICE"."PRICETYPE"=0
    AND "INVENTITEMPRICE"."ACTIVATIONDATE"<={?As Of Date}
    AND "INVENTITEMPRICE"."ITEMID" = "INVENTTABLE"."ITEMID"
    ORDER BY "INVENTITEMPRICE"."ACTIVATIONDATE" DESC
    ) AS ITEMPRICE
    FROM  
    "AX09PROD"."dbo"."INVENTTABLE" "INVENTTABLE"
    LEFT OUTER JOIN "AX09PROD"."dbo"."INVENTTRANS" "INVENTTRANS"
    ON ("INVENTTABLE"."DATAAREAID"="INVENTTRANS"."DATAAREAID")
    AND ("INVENTTABLE"."ITEMID"="INVENTTRANS"."ITEMID")
    WHERE 
    "INVENTTRANS"."DATAAREAID" LIKE 'TMC%'
    AND (("INVENTTABLE"."ITEMGROUPID" LIKE 'RAW%') OR ("INVENTTABLE"."ITEMGROUPID" BETWEEN '000' AND '999') OR ("INVENTTABLE"."ITEMGROUPID" LIKE 'Ship_Box'))
    AND "INVENTTABLE"."ITEMTYPE" IN (0,1)
    ORDER BY 
    "INVENTTABLE"."ITEMGROUPID",
    "INVENTTABLE"."ITEMID",
    "INVENTTRANS"."DATEPHYSICAL" ASC
    Message was edited by: Jamie Wiseman

  • Progression not yielding the desired result

    Hi
    I have written a text query using the progressive relaxation method. It is not giving me the desired results. Here are the query details:
    I have created an Intermedia index on a table with following specs:
    BEGIN
    CTX_DDL.DROP_PREFERENCE('CTXSYS.COMPANY_SEARCH_MULTI');
         CTX_DDL.CREATE_PREFERENCE('CTXSYS.COMPANY_SEARCH_MULTI', 'MULTI_COLUMN_DATASTORE');
         CTX_DDL.SET_ATTRIBUTE(     'CTXSYS.COMPANY_SEARCH_MULTI',
                        'columns',
                        'COMPANY,
                        DESC_N_PRODS,
                        PROD_DESC_N_PRODS,
                        PG_TITLE_GLUSR,
                        PG_KWD_DESC,
                        GEOGRAPHICAL_PROFILE,
                        GLUSR_DESC,
                        SUBCAT_DESC,
                        CTL_DESC,
                        SHORT_PROFILE,
                        LONG_PROFILE');
         CTX_DDL.DROP_SECTION_GROUP('CTXSYS.COMPANY_SEARCH_GROUP');
         CTX_DDL.CREATE_SECTION_GROUP('CTXSYS.COMPANY_SEARCH_GROUP', 'BASIC_SECTION_GROUP');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F1',     'COMPANY');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F2',     'DESC_N_PRODS');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F3',     'PROD_DESC_N_PRODS');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F4',     'PG_TITLE_GLUSR');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F5',     'PG_KWD_DESC');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F6',     'GEOGRAPHICAL_PROFILE');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F7',     'GLUSR_DESC');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F8',     'SUBCAT_DESC');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F9',     'CTL_DESC');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F10','SHORT_PROFILE');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F11','LONG_PROFILE');
         CTX_DDL.DROP_PREFERENCE('CTXSYS.IIL_LEXER');
         CTX_DDL.CREATE_PREFERENCE('CTXSYS.IIL_LEXER','BASIC_LEXER');
    CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_LEXER', 'INDEX_STEMS', 'ENGLISH');
         CTX_DDL.DROP_PREFERENCE('CTXSYS.IIL_FUZZY_PREF');
         CTX_DDL.CREATE_PREFERENCE('CTXSYS.IIL_FUZZY_PREF', 'BASIC_WORDLIST');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','FUZZY_MATCH','ENGLISH');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','FUZZY_SCORE','60');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','FUZZY_NUMRESULTS','100');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','SUBSTRING_INDEX','TRUE');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','PREFIX_INDEX','TRUE');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','PREFIX_MIN_LENGTH','1');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','PREFIX_MAX_LENGTH','3');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','WILDCARD_MAXTERMS','15000');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','STEMMER','ENGLISH');
    END;
    CREATE INDEX COMPANY_SEARCH_IM on COMPANY_SEARCH(DUMMY) INDEXTYPE IS
    CTXSYS.CONTEXT PARAMETERS
    ('DATASTORE CTXSYS.COMPANY_SEARCH_MULTI SECTION GROUP CTXSYS.COMPANY_SEARCH_GROUP MEMORY 50M
    LEXER CTXSYS.IIL_LEXER WORDLIST CTXSYS.IIL_FUZZY_PREF STOPLIST CTXSYS.IIL_STOPLIST');
    Now if I want to search for a string - acrylic crochet
    My progressive clause is as follows:
    <QUERY>
    <TEXTQUERY>
    <PROGRESSION>
    <SEQ>(acrylic crochet) within F2</SEQ>
    <SEQ>($acrylic $crochet) within F2</SEQ>
    <SEQ>(acrylic crochet) within F3</SEQ>
    <SEQ>($acrylic $crochet) within F3</SEQ>
    <SEQ>(NEAR((acrylic,crochet))) within F2</SEQ>
    </PROGRESSION>
    </TEXTQUERY>
    </QUERY>
    The data set has a record where F2 Contains following text:
    Manufacturers and exporters of yarns like acrylic yarn, viscose yarns, acrylic blended yarn, acrylic knitting yarn, spun yarn, blended yarns, braided thread, chenille yarn, cotton yarn, crochet yarn, dupion silk yarns etc
    My problem is that - This record is not coming in the search result.
    The record starts appearing if I use only NEAR Clause. as shown below:
    <QUERY>
    <TEXTQUERY>
    <PROGRESSION>
    <SEQ>(NEAR((acrylic,crochet))) within F2</SEQ>
    </PROGRESSION>
    </TEXTQUERY>
    </QUERY>
    Please advise what could be wrong - is my Index proper, or my progressive clause has some problem or there is something else which I have totally missed.
    Regards
    Madhup

    The discussion in the link below contains the same bug that you have encoutered and some workarounds.
    Re: progressive relaxation doesn't progress

  • The dashboard propmt not showing desired results

    Hi,
    I have propmt created using this condition.But it is not showing me the desired results.The code seems to be correct.any help plz...
    case when TimeStampDiff(SQL_TSI_DAY,"TB1".CL1,CURRENT_DATE) between 0 and 30 or TimeStampDiff(SQL_TSI_DAY,"TB1".CL2,CURRENT_DATE) between 0 and 30 then '30 days'
    when TimeStampDiff(SQL_TSI_DAY,"TB1".CL1,CURRENT_DATE) between 31 and 60 or TimeStampDiff(SQL_TSI_DAY,"TB1".CL2,CURRENT_DATE) between 31 and 60 then ' last 60 days'
    when TimeStampDiff(SQL_TSI_DAY,"TB1".CL1,CURRENT_DATE) between 61 and 90 or TimeStampDiff(SQL_TSI_DAY,"TB1".CL1,CURRENT_DATE) between 61 and 90 then 'last 90 days'
    else '> 90 and max 100 Days' end

    Hi,
    Create a dummy column for the below code
    case when TimeStampDiff(SQL_TSI_DAY,"TB1".CL1,CURRENT_DATE) between 0 and 30 or TimeStampDiff(SQL_TSI_DAY,"TB1".CL2,CURRENT_DATE) between 0 and 30 then '30 days'
    when TimeStampDiff(SQL_TSI_DAY,"TB1".CL1,CURRENT_DATE) between 31 and 60 or TimeStampDiff(SQL_TSI_DAY,"TB1".CL2,CURRENT_DATE) between 31 and 60 then ' last 60 days'
    when TimeStampDiff(SQL_TSI_DAY,"TB1".CL1,CURRENT_DATE) between 61 and 90 or TimeStampDiff(SQL_TSI_DAY,"TB1".CL1,CURRENT_DATE) between 61 and 90 then 'last 90 days'
    else '> 90 and max 100 Days' endfilter it as is prompted for that column after giving filter as is prompted you can hide that column or remove it.
    Save the report
    Assign points and close thread, if your question is answered....
    Cheers,
    Aravind

  • How to define the Market Sales KF, in order to receive the desired result

    Hi all,
    I dont know how to define the Market Sales Kefigure, in order to get the following result. Any hint is more than welcome.
    Prd_ID = Product ID
    PS  =  Product Sales
    M_ID = Market ID
    MS  = Market Sales
    MS%  = Market Share ( formula in BEX PS/MS)
    <b>
    Prd_ID;PS;M_ID;MS;MS%</b>
    A00001;10;MRK1;100;10%
    A00002;20;MRK1;100;20%
    <b>SBTOT</b>;30;MRK1;100;30%
    B00001;40;MRK2;200;20%
    B00002;30;MRK2;200;15% 
    <b>SBTOT</b>;70;MRK2;200;35%
    <b>GTOTL</b>;100;MRKX;300;33,3%
    Products A00001 and A00002 compete in the same market. So the individual marketshares should be calculated against the market MRK1(200), e.g. 40/200 and 30/200.
    The totals now, of the A00001 and A00002 products(3040) should be compared against <b>the same market</b> MRK1(200),</b> and <b>not against</b> the MRK1MRK1(200+200).
    Thanks
    Vasso Siagri<b></b><b></b><b></b>

    Maik,
    thank you for your answer, but I am afraid this is not giving the desired results.
    What I want----
    >What am getting
    Prd_ID;PS;M_ID;MS;MS%
    A00001;10;MRK1;100;10%  ---> 10;MRK1;200;5%
    A00002;20;MRK1;100;20%  ---> 20;MRK1;200;10%
    SBTOT;30;MRK1;100;30%   ---> 30;MRK1;200;15%
    B00001;40;MRK2;200;20%  ---> 40;MRK2;400;10%
    B00002;30;MRK2;200;15%  ---> 30;MRK2;400;7,5%
    SBTOT;70;MRK2;200;35%   ---> 70;MRK2;400;17,5%
    GTOTL;100;MRKX;300;33,3% ---> 1000;MRKX;600;16,7%
    Neither resticted KF restricted on Market ID is working for many markets; it is working only if you analyze one market id.
    Any idea? bw idea? What actually I need is aggregation of unique records in terms on market id.

  • Write a query / pl/sql statement for desired results

    Here is the table data:
    FSSETY FSUSER FSOBNM FSA FSCHNG FSDLT FSIOK FSICPY FSATN1
    1 DSTEIN P0030A N N N Y N Y
    1 FINAB001 P0030A Y Y Y Y Y Y
    1 FINAB001 P01012 Y Y Y Y Y Y
    1 DSTEIN P01012 Y Y Y Y Y Y
    1 DSTEIN P01013 Y Y Y Y Y Y
    1 FINAB001 P01013 Y Y Y Y Y Y
    1 FINAB001 P0111 Y Y Y Y Y Y
    1 DSTEIN P0111 Y Y Y Y Y Y
    1 DSTEIN P01111 Y Y Y Y Y Y
    1 FINAB001 P01111 Y Y Y Y Y Y
    1 FINAB001 P0115 Y Y Y Y Y Y
    1 DSTEIN P0115 Y Y Y Y Y Y
    1 DSTEIN P01BDWRD Y Y Y Y Y Y
    1 FINAB001 P01BDWRD Y Y Y Y Y Y
    1 FINAB001 P0411 Y Y Y Y Y Y
    1 DSTEIN P0411 N N N Y N Y
    What I need in results is:
    For each FSOBNM, return the rows with different FSUSER values and non-matching values in fsa OR fschng OR fsdlt OR fsicpy.
    So, the desired output of the query should return the first two rows and the last two rows, as they meet this criteria.
    I need help in the statement that would return the desired results.
    Thanks!
    Edited by: skyfox on 17-May-2012 5:54 PM
    Edited by: skyfox on 17-May-2012 5:54 PM

    Hi Skyfox,
    Below is the query you might be looking into
    SQL>
    SQL> WITH test AS(
      2  SELECT 1 FSSETY, 'DSTEIN' FSUSER, 'P0030A' FSOBNM, 'N' FSA, 'N' FSCHNG, 'N' FSDLT, 'Y' FSIOK, 'N' FSICPY, 'Y' FSATN1 FROM DUAL  UNION ALL
      3  SELECT 1 FSSETY, 'FINAB001' FSUSER, 'P0030A' FSOBNM, 'Y' FSA, 'Y' FSCHNG, 'Y' FSDLT, 'Y' FSIOK, 'Y' FSICPY, 'Y' FSATN1 FROM DUAL  UNION ALL
      4  SELECT 1 FSSETY, 'FINAB001' FSUSER, 'P01012' FSOBNM, 'Y' FSA, 'Y' FSCHNG, 'Y' FSDLT, 'Y' FSIOK, 'Y' FSICPY, 'Y' FSATN1 FROM DUAL  UNION ALL
      5  SELECT 1 FSSETY, 'DSTEIN' FSUSER, 'P01012' FSOBNM, 'Y' FSA, 'Y' FSCHNG, 'Y' FSDLT, 'Y' FSIOK, 'Y' FSICPY, 'Y' FSATN1 FROM DUAL  UNION ALL
      6  SELECT 1 FSSETY, 'DSTEIN' FSUSER, 'P01013' FSOBNM, 'Y' FSA, 'Y' FSCHNG, 'Y' FSDLT, 'Y' FSIOK, 'Y' FSICPY, 'Y' FSATN1 FROM DUAL  UNION ALL
      7  SELECT 1 FSSETY, 'FINAB001' FSUSER, 'P01013' FSOBNM, 'Y' FSA, 'Y' FSCHNG, 'Y' FSDLT, 'Y' FSIOK, 'Y' FSICPY, 'Y' FSATN1 FROM DUAL  UNION ALL
      8  SELECT 1 FSSETY, 'FINAB001' FSUSER, 'P0111' FSOBNM, 'Y' FSA, 'Y' FSCHNG, 'Y' FSDLT, 'Y' FSIOK, 'Y' FSICPY, 'Y' FSATN1 FROM DUAL  UNION ALL
      9  SELECT 1 FSSETY, 'DSTEIN' FSUSER, 'P0111' FSOBNM, 'Y' FSA, 'Y' FSCHNG, 'Y' FSDLT, 'Y' FSIOK, 'Y' FSICPY, 'Y' FSATN1 FROM DUAL  UNION ALL
    10  SELECT 1 FSSETY, 'DSTEIN' FSUSER, 'P01111' FSOBNM, 'Y' FSA, 'Y' FSCHNG, 'Y' FSDLT, 'Y' FSIOK, 'Y' FSICPY, 'Y' FSATN1 FROM DUAL  UNION ALL
    11  SELECT 1 FSSETY, 'FINAB001' FSUSER, 'P01111' FSOBNM, 'Y' FSA, 'Y' FSCHNG, 'Y' FSDLT, 'Y' FSIOK, 'Y' FSICPY, 'Y' FSATN1 FROM DUAL  UNION ALL
    12  SELECT 1 FSSETY, 'FINAB001' FSUSER, 'P0115' FSOBNM, 'Y' FSA, 'Y' FSCHNG, 'Y' FSDLT, 'Y' FSIOK, 'Y' FSICPY, 'Y' FSATN1 FROM DUAL  UNION ALL
    13  SELECT 1 FSSETY, 'DSTEIN' FSUSER, 'P0115' FSOBNM, 'Y' FSA, 'Y' FSCHNG, 'Y' FSDLT, 'Y' FSIOK, 'Y' FSICPY, 'Y' FSATN1 FROM DUAL  UNION ALL
    14  SELECT 1 FSSETY, 'DSTEIN' FSUSER, 'P01BDWRD' FSOBNM, 'Y' FSA, 'Y' FSCHNG, 'Y' FSDLT, 'Y' FSIOK, 'Y' FSICPY, 'Y' FSATN1 FROM DUAL  UNION ALL
    15  SELECT 1 FSSETY, 'FINAB001' FSUSER, 'P01BDWRD' FSOBNM, 'Y' FSA, 'Y' FSCHNG, 'Y' FSDLT, 'Y' FSIOK, 'Y' FSICPY, 'Y' FSATN1 FROM DUAL  UNION ALL
    16  SELECT 1 FSSETY, 'FINAB001' FSUSER, 'P0411' FSOBNM, 'Y' FSA, 'Y' FSCHNG, 'Y' FSDLT, 'Y' FSIOK, 'Y' FSICPY, 'Y' FSATN1 FROM DUAL  UNION ALL
    17  SELECT 1 FSSETY, 'DSTEIN' FSUSER, 'P0411' FSOBNM, 'N' FSA, 'N' FSCHNG, 'N' FSDLT, 'Y' FSIOK, 'N' FSICPY, 'Y' FSATN1 FROM DUAL)
    18  SELECT *
    19    FROM test a
    20   WHERE EXISTS (SELECT 1 FROM test
    21                  WHERE fsobnm = a.fsobnm
    22                    AND fsuser != a.fsuser
    23                    AND (fsa != a.fsa OR fschng != a.fschng OR fsdlt != a.fsdlt OR fsicpy != a.fsicpy))
    24  /
        FSSETY FSUSER   FSOBNM   FSA FSCHNG FSDLT FSIOK FSICPY FSATN1
             1 DSTEIN   P0030A   N   N      N     Y     N      Y
             1 FINAB001 P0030A   Y   Y      Y     Y     Y      Y
             1 FINAB001 P0411    Y   Y      Y     Y     Y      Y
             1 DSTEIN   P0411    N   N      N     Y     N      Y
    SQL>

  • To_date function not fetching the desired result.....

    Hi Gurus,
    I get varied results from the below 2 queries, I am pessimistic about using to_char instead prefer using to_date, but query doesn't seem to fetch the complete data while using the to_date but with to_char it works. Please can someone make this to_date used query below work for me.
    Main table structure:
    Column Name     ID     Pk     Null?     Data Type     Default     Histogram     Encryption Alg     Salt
    MINISTRY_CODE     1          Y     VARCHAR2 (15 Byte)          Yes          
    BILL_MONTH     2          Y     DATE          Yes          
    CUBIC     3          Y     NUMBER          Yes          
    GALLONS     4          Y     NUMBER          Yes          
    AMOUNTS     5          Y     NUMBER          Yes          
    MTR_TYPE     6          Y     CHAR (1 Byte)          Yes          1st query:
    SELECT ministry_code,
    DECODE(mtr_type, 'C','Billed Cubic',
    'G','Billed Gallons',
    'A','Billed OMR',
    'R','Collected',
    'U','Total Unpaid Bills') mtr_type,
    SUM(CASE
    WHEN mtr_type NOT IN ('C','G','A','R','U') THEN 0 WHEN to_char(bill_month,'MMYYYY') = '012011' AND mtr_type = 'C' THEN cubic
    WHEN mtr_type NOT IN ('C','G','A','R','U') THEN 0 WHEN to_char(bill_month,'MMYYYY') = '012011' AND mtr_type = 'G' THEN (gallons)
    WHEN mtr_type NOT IN ('C','G','A','R','U') THEN 0 WHEN to_char(bill_month,'MMYYYY') = '012011' AND mtr_type = 'A' THEN amounts
    WHEN mtr_type NOT IN ('C','G','A','R','U') THEN 0 WHEN to_char(bill_month,'MMYYYY') = '022011' AND mtr_type = 'R' THEN amounts
    WHEN mtr_type NOT IN ('C','G','A','R','U') THEN 0 WHEN to_char(bill_month,'MMYYYY') <= '022011' AND mtr_type = 'U' THEN amounts ELSE 0 END) January
    FROM tmp_paew_month_gafu1 WHERE ministry_code IN
    (SELECT DISTINCT ministry_code FROM tmp_paew_month_gafu GROUP BY ministry_code)
    GROUP BY ministry_code,mtr_type
    ORDER BY 1,3 DESCSAMPLE OUTPUT:
    MINISTRY_CODE MTR_TYPE JANUARY
    001 Billed Gallons 5326252
    001 Billed Cubic 24210.2363636364
    001 Total Unpaid Bills 16402.5
    001 Billed OMR 13287.36
    001 Collected 10410.508
    002 Total Unpaid Bills 12089.99
    002 Billed Cubic 0
    002 Billed OMR 0
    002 Billed Gallons 0
    002 Collected 0
    003 Total Unpaid Bills 27418.711
    2nd query:
    SELECT ministry_code,
    DECODE(mtr_type, 'C','Billed Cubic',
    'G','Billed Gallons',
    'A','Billed OMR',
    'R','Collected',
    'U','Total Unpaid Bills') mtr_type,
    SUM(CASE
    WHEN mtr_type NOT IN ('C','G','A','R','U') THEN 0 WHEN to_char(bill_month) = to_date('012011','MMYYYY') AND mtr_type = 'C' THEN cubic
    WHEN mtr_type NOT IN ('C','G','A','R','U') THEN 0 WHEN to_date(bill_month) = to_date('012011','MMYYYY') AND mtr_type = 'G' THEN (gallons)
    WHEN mtr_type NOT IN ('C','G','A','R','U') THEN 0 WHEN to_date(bill_month) = to_date('012011','MMYYYY') AND mtr_type = 'A' THEN amounts
    WHEN mtr_type NOT IN ('C','G','A','R','U') THEN 0 WHEN to_date(bill_month) = to_date('022011','MMYYYY') AND mtr_type = 'R' THEN amounts
    WHEN mtr_type NOT IN ('C','G','A','R','U') THEN 0 WHEN to_date(bill_month) <= to_date('022011','MMYYYY') AND mtr_type = 'U' THEN amounts ELSE 0 END) January
    FROM tmp_paew_month_gafu1 WHERE ministry_code IN
    (SELECT DISTINCT ministry_code FROM tmp_paew_month_gafu GROUP BY ministry_code)
    GROUP BY ministry_code,mtr_type
    ORDER BY 1,3 DESCSample OUTPUT:
    MINISTRY_CODE MTR_TYPE JANUARY
    001 Total Unpaid Bills 106062.002
    001 Billed OMR 0
    001 Billed Cubic 0
    001 Billed Gallons 0
    001 Collected 0
    002 Total Unpaid Bills 42023.243
    002 Collected 0
    002 Billed Gallons 0
    002 Billed Cubic 0
    002 Billed OMR 0
    003 Total Unpaid Bills 133260.435

    What is the sense of to_date(bill_month) in the second query?
    bill_month is already a date. to_date function will expect a character parameter and convert it in a date value.
    So what will happen? First the bill_month will be implicitely converted to a character value.
    Second this character value will be converted back to a date. You gave no format string. So both conversions will be made will your setting of nls_date_format.
    I can only guess what you really want. Perhaps you want to trunc the bill_month with trunc(bill_month,'MM').
    Please give us
    - table create script
    - insert statements for test data
    - required output for these test data
    - description of your requirements
    Edited by: hm on 22.11.2012 23:16

  • Query not showing desired result

    Hi All,
    DB :-10.2.0.3
    I am using following query to extarct the backuppice, which falls between the dates specified by query. I am really amazed, why it's not giving me the expected results.
    select handle, to_char(start_time, 'dd-mon-yy hh24:mi:ss') "start_time" , to_char(completion_time, ' dd-mon-yy hh24:mi:ss') "end_time" from
    v$backup_piece where
    to_char(start_time,'dd-mon-yy hh24:mi:ss') >'27-oct-10 23:00:00'
    and
    to_char(completion_time,'dd-mon-yy hh24:mi:ss')<'28-oct-10 04:20:53'
    Results truncated, just to fit in this window.
    23:02:25
    /data/oracle/LNEVRPP1/backup/database/c-465769364-20100927-0c                         27-sep-10 23:02:39           27-sep-10
    23:02:40
    /data/oracle/LNEVRPP1/backup/database/LNEVRPP1_ctl_l1_t730854174_s32554_p1.rmn        27-sep-10 23:02:58           27-sep-10
    23:02:59
    /data/oracle/LNEVRPP1/backup/database/c-465769364-20100927-0d                         27-sep-10 23:03:02           27-sep-10
    23:03:02
    /data/oracle/LNEVRPP1/backup/database/LNEVRPP1_arc_l1_t730854220_s32556_p1.rmn        27-sep-10 23:03:41           27-sep-10
    23:03:44
    /data/oracle/LNEVRPP1/backup/database/c-465769364-20100927-0e                         27-sep-10 23:03:51           27-sep-10
    23:03:51
    /data/oracle/LNEVRPP1/backup/database/LNEVRPP1_dbf_l0_t733532449_s33531_p1.rmn        27-oct-10 23:00:50           27-oct-10
    23:36:00
    /data/oracle/LNEVRPP1/backup/database/LNEVRPP1_dbf_l0_t733534566_s33532_p1.rmn        27-oct-10 23:36:07           27-oct-10
    23:48:38
    HANDLE                                                                                start_time                  end_time
    /data/oracle/LNEVRPP1/backup/arc2adsm/LNEVRPP1_arc_l0_t733536053_s33534_p1.rmn        28-oct-10 00:00:54           28-oct-10
    00:01:13
    /data/oracle/LNEVRPP1/backup/database/c-465769364-20101028-00                         28-oct-10 00:01:22           28-oct-10
    00:01:23
    /data/oracle/LNEVRPP1/backup/database/LNEVRPP1_dbf_l0_t733535322_s33533_p1.rmn        27-oct-10 23:48:43           28-oct-10
    00:20:06
    /data/oracle/LNEVRPP1/backup/database/LNEVRPP1_dbf_l0_t733537209_s33536_p1.rmn        28-oct-10 00:20:10           28-oct-10
    00:33:44
    /data/oracle/LNEVRPP1/backup/database/c-465769364-20101028-01                         28-oct-10 00:33:47           28-oct-10
    00:33:48
    /data/oracle/LNEVRPP1/backup/database/LNEVRPP1_ctl_l0_t733538041_s33538_p1.rmn        28-oct-10 00:34:04           28-oct-10
    00:34:04
    /data/oracle/LNEVRPP1/backup/database/c-465769364-20101028-02                         28-oct-10 00:34:06           28-oct-10
    00:34:07

    Hi
    Try:
    select handle, to_char(start_time, 'dd-mon-yy hh24:mi:ss') "start_time" , to_char(completion_time, ' dd-mon-yy hh24:mi:ss') "end_time"
    from v$backup_piece
    where start_time > to_date ('27-oct-10 23:00:00','dd-mon-yy hh24:mi:ss')
    and completion_time < to_date ('28-oct-10 23:00:00','dd-mon-yy hh24:mi:ss')
    Regards,
    Tycho

  • Query:  Not getting the desired result. Please help

    QL> select * from ecev;
    entity_Tag
    7
    8
    9
    10
    1
    2
    3
    4
    5
    6
    SQL> select * from dg;
    DIGP_TAG CEPT_TAG
    600 1
    700 1
    800 1
    900 1
    100 1
    200 1
    500 1
    75 2
    SQL> select * from enow;
    ENTITY_CODE ENTITY_TAG DIGP_TAG TARGET_DA CEPT_TAG
    EXT 7           600      26-MAY-07 1
    EXT 8           700      26-MAY-07 1
    EXT 9           800      26-MAY-07 1
    EXT 10           800      22-APR-76 1
    EXT 1           100      20-OCT-06 1
    EXT 2           200      20-OCT-06 1
    EXT 3           500      20-OCT-06 1
    EXT 4           100      20-OCT-06 1
    EXT 5           100      20-OCT-06 1
    EXT 6           80      20-OCT-06 1
    EXT 1           75           2
    SQL> select * from tk;
    TK_TAG DIGP_TAG NARRATIVE DUE_DATE CEPT_TAG
    35 90 raj 27-MAY-07               1
    36 900 kkd 27-MAY-07               1
    37 100 kim 28-MAY-07               1
    30 100 ram 23-MAY-07               1
    31 100 kish 23-MAY-07               1
    32 200 mar 23-MAY-07               1
    33 100 gy 23-MAY-07               1
    34 100 mm 27-MAY-07               1
    8 rows selected.
    For the following query
    1 select
    2 d.ecev_tag ecev_tag,
    3 a.digp_tag entity_owner ,
    4 c.digp_tag task_owner,
    5 c.tk_tag task_tag,
    6 c.narrative
    7 from enow a,
    8 entl b,
    9 tk c,
    10 ecev d
    11 where ( a.DIGP_TAG=100 or c.digp_tag=100)
    12 and a.entity_tag=b.entity_tag(+)
    13 and b.tk_tag=c.tk_tag(+)
    14* and a.entity_tag=d.entity_tag
    SQL> select * from entl;
    TK_TAG ENTITY_TAG
    35 5
    36 10
    30 1
    31 1
    32 2
    33 3
    34 3
    Result:
    I get
    entity_tag ENTITY_OWNER TASK_OWNER TASK_TAG NARRATIVE
    5 100 90 35 raj          row1
    1 100 100 30 ram          row2
    1 75 100 30 ram          row3 1 100 100 31 kish          row4
    1 75 100 31 kish          row5 3 500 100 33 gy          row6
    3 500 100 34 mm          row7
    4 100                              row8
    Row1: yes, since entity_tag 5 is owned by digp_tag 100 (enow)
    Row2: yes, since entity_tag 1 is owned by digp_tag 100 (enow)
    Row3: NO, since entity_tag 1 is owned by digp_tag 75, which in turn is in cept_tag 2, since the passed digp_tag is 100 and it just belongs to cept_tag 1 we should not be getting this row.
    Row4: Yes, since tk_tag 31 is owned by digp_tag 100 (tk)
    Row5 NO, since entity_tag 1 is owned by digp_tag 75, which in turn is in cept_tag 2 since the passed digp_tag is 100 and it just belongs to cept_tag 1 we should not be getting this row.
    Row6: Yes, since tk_tag 33 is owned by digp_tag 100 (enow)
    Row7: Yes, since tk_tag 34 is owned by digp_tag 100(enow)
    Row8: Yes, since entity_tag 4 is owned by 100(enow
    I guess i have to join dg.cept_tag and a.cept_tag, but it is not working.....
    Can somebody understand this and help...
    Thanks
    Ram

    QL> select * from ecev;
    entity_Tag
    7
    8
    9
    0
    1
    2
    3
    4
    5
    6
    SQL> select * from dg;
    DIGP_TAG CEPT_TAG
    600 1
    700 1
    800 1
    900 1
    100 1
    200 1
    500 1
    75 2
    SQL> select * from enow;
    ENTITY_CODE ENTITY_TAG DIGP_TAG
    TARGET_DA CEPT_TAG
    EXT 7
              600      26-MAY-07 1
    8           700
         26-MAY-07 1
    EXT 9
              800      26-MAY-07 1
    10           800
         22-APR-76 1
    EXT 1
              100      20-OCT-06 1
    2           200
         20-OCT-06 1
    EXT 3
              500      20-OCT-06 1
    4           100
         20-OCT-06 1
    EXT 5
              100      20-OCT-06 1
    6           80
         20-OCT-06 1
    EXT 1
              75           2
    L> select * from tk;
    TK_TAG DIGP_TAG NARRATIVE DUE_DATE
    CEPT_TAG
    35 90 raj 27-MAY-07               1
    36 900 kkd 27-MAY-07               1
    37 100 kim 28-MAY-07               1
    30 100 ram 23-MAY-07               1
    31 100 kish 23-MAY-07               1
    32 200 mar 23-MAY-07               1
    33 100 gy 23-MAY-07               1
    34 100 mm 27-MAY-07               1
    8 rows selected.
    For the following query
    1 select
    2 d.ecev_tag ecev_tag,
    3 a.digp_tag entity_owner ,
    4 c.digp_tag task_owner,
    5 c.tk_tag task_tag,
    6 c.narrative
    7 from enow a,
    8 entl b,
    9 tk c,
    10 ecev d
    11 where ( a.DIGP_TAG=100 or c.digp_tag=100)
    12 and a.entity_tag=b.entity_tag(+)
    13 and b.tk_tag=c.tk_tag(+)
    14* and a.entity_tag=d.entity_tag
    SQL> select * from entl;
    TK_TAG ENTITY_TAG
    35 5
    36 10
    30 1
    31 1
    32 2
    33 3
    34 3
    sult:
    I get
    entity_tag ENTITY_OWNER TASK_OWNER TASK_TAG
    NARRATIVE
    5 100 90
    35 raj          row1
    100 100 30
    ram          row2
    75 100
    30 ram          row31 100 100
    31 kish          row4
    75 100
    31 kish          row5
    3 500 100
    33 gy          row6
    500 100 34
    mm          row7
    100                              row8
    1: yes, since entity_tag 5 is owned by digp_tag 100
    (enow)
    Row2: yes, since entity_tag 1 is owned by digp_tag
    100 (enow)
    Row3: NO, since entity_tag 1 is owned by digp_tag 75,
    which in turn is in cept_tag 2, since the passed
    digp_tag is 100 and it just belongs to cept_tag 1 we
    should not be getting this row.
    Row4: Yes, since tk_tag 31 is owned by digp_tag 100
    (tk)
    Row5 NO, since entity_tag 1 is owned by digp_tag 75,
    which in turn is in cept_tag 2 since the passed
    digp_tag is 100 and it just belongs to cept_tag 1 we
    should not be getting this row.
    Row6: Yes, since tk_tag 33 is owned by digp_tag 100
    (enow)
    Row7: Yes, since tk_tag 34 is owned by digp_tag
    100(enow)
    Row8: Yes, since entity_tag 4 is owned by 100(enow
    I guess i have to join dg.cept_tag and a.cept_tag,
    but it is not working.....
    Can somebody understand this and help...
    Thanks
    Ram
    Result:
    I get
    entity_tag ENTITY_OWNER TASK_OWNER TASK_TAG NARRATIVE
    5 100 90 35 raj     row1
    1 100 100 30 ram     row2
    1 75 100 30 ram     row3
    1 100 100 31 kish     row4
    1 75 100 31 kish     row5
    3 500 100 33 gy     row6
    3 500 100 34 mm     row7
    4 100                    row8

  • Not sure how to get the rest of my desired results

    In my first query, I am getting hits for any entry where the
    value of rideDistance is greater than 99
    In the first part of the second query, I am grouping the hits
    from the first query together by riderId and getting a count per
    rider
    *** THUS if there were five hits in the first query and the
    riderId were: 1, 5, 1, 1, 2
    then the count for riderId 1 would be 3, riderId 5 would be 1
    and riderId 2 would be 1
    Now based on the riderId, I need to query another table to
    pull the name that matches the riderId. But I'm not sure how to do
    this. I thought maybe I could put a second select inside the second
    query, but I think this has to go in a WHERE but I am not using a
    WHERE in the second query just a GROUP BY
    Can somebody give me some suggestions on what I might try.

    Life got in the way of me getting back to your answers
    sooner. Thanks for all the help. I actually tried using a Join
    first, but couldn't get the responses I wanted - I must have been
    making an error as this time through it worked.
    Now if I could ask for just a little more help. Current code
    is below.
    I'm taking my results and putting them into a pie chart.
    Currently I get the "centuryCountByRider" as the value for
    each pie slice (which is correct) and it shows the amount next to
    each pie slice. I would like for it to keep the
    "centuryCountByRider" as the amount (valueColumn) but show the name
    of the person.
    I realize I could put this in the popup box when you mouse
    over each pie slice, but I really want the name shown next to each
    slice. Also the exact name shown will be generated from a cfif -
    cfif show name is m - show middleName, f - firstName, n - nickName.

  • Help!!!it's not the desired result of oci bulk update!!

    here is demo_update of oci/samples cdemodr1.c,i modified a little,and the other of cdemodr1.c keeps unchanged:
    1.
    give the result:
    after demo_insert
    in4[i] = 400.555 + (float)i;//c4 value
    get the result:
    C1 C4
    1 400.554993
    2 401.554993
    3 402.554993
    4 403.554993
    5 404.554993
    6 405.554993
    7 406.554993
    8 407.554993
    9 408.554993
    10 409.554993
    i expect to update c4 value to:
    in4[i] = 1401.555 + (float)i;
    and get the result:
    C1 C4
    1 1400.554993
    2 1401.554993
    3 1402.554993
    4 1403.554993
    5 1404.554993
    6 1405.554993
    7 1406.554993
    8 1407.554993
    9 1408.554993
    10 1409.554993
    but after my modified demo_update,
    the result is not the expectation,
    the resule is:
    C1 C4
    1 1403.55505
    2 1403.55505
    3 1403.55505
    4 1403.55505
    5 1403.55505
    6 1403.55505
    7 1403.55505
    8 1403.55505
    9 1403.55505
    10 1403.55505
    2.
    table create script:
    create table TAB1
    c1 integer not null
    c2 char(40),
    c3 varchar2(40),
    c4 float,
    c5 decimal,
    c6 decimal(8,3),
    c7 numeric,
    c8 numeric(7,2),
    c9 date,
    c10 raw(40),
    constraint ind_tab1
    organization index;

    3.
    here is my modified demo_update():
    please help me to check out where it goes wrong!!
    thank you!!!
    static sword demo_update(OCISvcCtx svchp, OCIStmt stmthp,
    OCIBind bndhp[], OCIError errhp)
    int i, j;
    int range_size = 3; /* iterations */
    sb4     len;
    * This function updates columns in table TAB1, for certain rows
    * depending on the values of the :low and :high values in
    * in the WHERE clause. It executes this statement 3 times, (3 iterations)
    * each time with a different set of values for :low and :high
    * Thus for each iteration, multiple rows are returned depending
    * on the number of rows that matched the WHERE clause.
    * The rows it updates here are the rows that were inserted by the
    * cdemodr1.sql script.
    /* The Update Statement with RETURNING clause */
    text sqlstmt = (text )
    "UPDATE TAB1 SET C2 = :1, C3 = :1, \
    C4 = :1, C5 = :1, C6 = :1, \
    C7 = :1, C8 = :1, C9 = :1, C10 = :1 \
    /* Prepare the statement */
    if (OCIStmtPrepare(stmthp, errhp, sqlstmt, (ub4)strlen((char *)sqlstmt),
    (ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT))
    (void) printf("FAILED: OCIStmtPrepare() update\n");
    report_error(errhp);
    return OCI_ERROR;
    /* Initialise the buffers for insertion */
    for (i = 0; i < MAXITER; i++)
    //in1[i] = 300 + i;
    memset((void *)in2, (int) 'a'+i%26, (size_t) 40);
    memset((void *)in3[i], (int) 'A'+i%26, (size_t) 40);
    in4[i] = 1401.555 + (float)i;
    in5[i] = 500 + i;
    in6[i] = 600.280 + (float)i;
    in7[i] = 700 + i;
    in8[i] = 800.620 + (float)i;
    in9[i][0] = 119;
    in9[i][1] = 185 - (ub1)i%10;
    in9[i][2] = (ub1)i%12 + 1;
    in9[i][3] = (ub1)i%25 + 1;
    in9[i][4] = 0;
    in9[i][5] = 0;
    in9[i][6] = 0;
    for (j = 0; j < 40; j++)
    in10[i][j] = (ub1) (i%0x08);
    rowsret[i] =0;
    len = /*sizeof(in1[0]) + */sizeof(in2[0]) + sizeof(in3[0]) + sizeof(in4[0]) + sizeof(in5[0])
         + sizeof(in6[0]) + sizeof(in7[0]) + sizeof(in8[0]) + sizeof(in9[0]) + sizeof(in10[0]);
    /* Bind all the input buffers to place holders (:1, :2. :3, etc ) */
    //if (bind_input(stmthp, bndhp, errhp))
    // return OCI_ERROR;
    if (/*OCIBindByPos(stmthp, &bndhp[0], errhp, (ub4) 10,
    (dvoid *) &in1[0], (sb4) sizeof(in1[0]), SQLT_INT,
    (dvoid *) 0, (ub2 *)0, (ub2 *)0,
    (ub4) 0, (ub4 *) 0, (ub4) OCI_DEFAULT)
    ||*/ OCIBindByPos(stmthp, &bndhp[1], errhp, (ub4) 1,
    (dvoid *) in2[0], (sb4) sizeof(in2[0]), SQLT_AFC,
    (dvoid *) 0, (ub2 *)0, (ub2 *)0,
    (ub4) 0, (ub4 *) 0, (ub4) OCI_DEFAULT)
    || OCIBindByPos(stmthp, &bndhp[2], errhp, (ub4) 2,
    (dvoid *) in3[0], (sb4) sizeof(in3[0]), SQLT_CHR,
    (dvoid *) 0, (ub2 *)0, (ub2 *)0,
    (ub4) 0, (ub4 *) 0, (ub4) OCI_DEFAULT)
    || OCIBindByPos(stmthp, &bndhp[3], errhp, (ub4) 3,
    (dvoid *) &in4[0], (sb4) sizeof(in4[0]), SQLT_FLT,
    (dvoid *) 0, (ub2 *)0, (ub2 *)0,
    (ub4) 0, (ub4 *) 0, (ub4) OCI_DEFAULT)
    || OCIBindByPos(stmthp, &bndhp[4], errhp, (ub4) 4,
    (dvoid *) &in5[0], (sb4) sizeof(in5[0]), SQLT_INT,
    (dvoid *) 0, (ub2 *)0, (ub2 *)0,
    (ub4) 0, (ub4 *) 0, (ub4) OCI_DEFAULT)
    || OCIBindByPos(stmthp, &bndhp[5], errhp, (ub4) 5,
    (dvoid *) &in6[0], (sb4) sizeof(in6[0]), SQLT_FLT,
    (dvoid *) 0, (ub2 *)0, (ub2 *)0,
    (ub4) 0, (ub4 *) 0, (ub4) OCI_DEFAULT)
    || OCIBindByPos(stmthp, &bndhp[6], errhp, (ub4) 6,
    (dvoid *) &in7[0], (sb4) sizeof(in7[0]), SQLT_INT,
    (dvoid *) 0, (ub2 *)0, (ub2 *)0,
    (ub4) 0, (ub4 *) 0, (ub4) OCI_DEFAULT)
    || OCIBindByPos(stmthp, &bndhp[7], errhp, (ub4) 7,
    (dvoid *) &in8[0], (sb4) sizeof(in8[0]), SQLT_FLT,
    (dvoid *) 0, (ub2 *)0, (ub2 *)0,
    (ub4) 0, (ub4 *) 0, (ub4) OCI_DEFAULT)
    || OCIBindByPos(stmthp, &bndhp[8], errhp, (ub4) 8,
    (dvoid *) in9[0], (sb4) sizeof(in9[0]), SQLT_DAT,
    (dvoid *) 0, (ub2 *)0, (ub2 *)0,
    (ub4) 0, (ub4 *) 0, (ub4) OCI_DEFAULT)
    || OCIBindByPos(stmthp, &bndhp[9], errhp, (ub4) 9,
    (dvoid *) in10[0], (sb4) sizeof(in10[0]), SQLT_BIN,
    (dvoid *) 0, (ub2 *)0, (ub2 *)0,
    (ub4) 0, (ub4 *) 0, (ub4) OCI_DEFAULT))
    (void) printf("FAILED: OCIBindByPos()\n");
    report_error(errhp);
    return OCI_ERROR;
    if (/*OCIBindArrayOfStruct(bndhp[0], errhp, s1, indsk[0], rlsk[0], rcsk[0])
    ||*/ OCIBindArrayOfStruct(bndhp[1], errhp, s2, indsk[1], rlsk[1], rcsk[1])
    || OCIBindArrayOfStruct(bndhp[2], errhp, s3, indsk[2], rlsk[2], rcsk[2])
    || OCIBindArrayOfStruct(bndhp[3], errhp, s4, indsk[3], rlsk[3], rcsk[3])
    || OCIBindArrayOfStruct(bndhp[4], errhp, s5, indsk[4], rlsk[4], rcsk[4])
    || OCIBindArrayOfStruct(bndhp[5], errhp, s6, indsk[5], rlsk[5], rcsk[5])
    || OCIBindArrayOfStruct(bndhp[6], errhp, s7, indsk[6], rlsk[6], rcsk[6])
    || OCIBindArrayOfStruct(bndhp[7], errhp, s8, indsk[7], rlsk[7], rcsk[7])
    || OCIBindArrayOfStruct(bndhp[8], errhp, s9, indsk[8], rlsk[8], rcsk[8])
    || OCIBindArrayOfStruct(bndhp[9], errhp, s10, indsk[9], rlsk[9], rcsk[9]))
    (void) printf("FAILED: OCIBindArrayOfStruct()\n");
    report_error(errhp);
    return OCI_ERROR;
    (void) printf("\n\n DEMONSTRATING UPDATE....RETURNING \n");
    if (OCIStmtExecute(svchp, stmthp, errhp, (ub4) range_size, (ub4) 0,
    (CONST OCISnapshot*) 0, (OCISnapshot*) 0,
    (ub4) OCI_DEFAULT))
    (void) printf("FAILED: OCIStmtExecute() update\n");
    report_error(errhp);
    return OCI_ERROR;
    /* Commit the changes */
    (void) OCITransCommit(svchp, errhp, (ub4) 0);
    /* Print out the values in the return rows */
    //(void) print_return_data(range_size);
    return OCI_SUCCESS;

  • Name attribute not giving the desired result in form tag

    Hi,
    I am using struts and the name attribute in form tag is not giving me the desired reuslt. The code is
    <html:form name="loginActionForm" type="source.form.LoginActionForm" action="/login.do" method="post">
    </html:form>
    when I am trying to use the name in javascript then I am getting an error
    "document.loginActionForm " is null or not an object.Where am I going wrong?

    I did so but the name I have used in the form tag is the same as what i have used in javascript.I dont think that it is a javascript error and it must be some mistake I made in the form tag.Also one more thing is it necessary to use the type attribute if you use the name attribute.

  • Group by Query not giving desired results

    Hi,
    I've a requirement to find minimum month based on status:
    The following query is giving error :
    SELECT
              b.app_name,
              DECODE (a.status,
              'C','Closed',
              'O','Open',
              'F','Future',
              'W','Pending',
              'N','Not Opened') decode_status
              MIN(a.period_name)
    FROM     table a,
         table b
    WHERE     a.app_id     =     b.app_id
    AND          b.app_name      =     'NAME1'
    AND          a.book_id     =     &book_id
    AND          a.status      =      'O'
    GROUP BY      b.app_name,
              DECODE (a.status,
              'C','Closed',
              'O','Open',
              'F','Future',
              'W','Pending',
              'N','Not Opened') decode_status
    for ex: in the above query if I've four records with status 'O' and period_name as 'May-12', 'Jun-12','Jul-12' ,'Aug-12' then I need to pick 'May'
    Thanks,
    Kiran

    Hi, Kiran,
    user518071 wrote:
    Hi,
    I've a requirement to find minimum month based on status:
    The following query is giving error :
    SELECT
              b.app_name,
              DECODE (a.status,
              'C','Closed',
              'O','Open',
              'F','Future',
              'W','Pending',
              'N','Not Opened') decode_status
              MIN(a.period_name)
    FROM     table a,
         table b
    WHERE     a.app_id     =     b.app_id
    AND          b.app_name      =     'NAME1'
    AND          a.book_id     =     &book_id
    AND          a.status      =      'O'
    GROUP BY      b.app_name,
              DECODE (a.status,
              'C','Closed',
              'O','Open',
              'F','Future',
              'W','Pending',
              'N','Not Opened') decode_status
    for ex: in the above query if I've four records with status 'O' and period_name as 'May-12', 'Jun-12','Jul-12' ,'Aug-12' then I need to pick 'May'
    Thanks,
    KiranIt looks like you're almost there.
    If period_name is a DATE, then
    MIN (a.period_name)is finidng the earliest period name, such as 5 May 2012 17:03:49. If you just want to see 'May 2012', then change that to
    TO_CHAR ( MIN (a.period_name)
            , 'Mon YYYY'
            )If a.period_name is a VARCHAR2, then change it to a DATE. The best way to do this is permanently. There is no reason to store date information in VARCHAR2 columns. Oracle supplies DATE columns; there's no extra cost for using them. DATE columns were designed for storing date information, use them to do that.
    if you must keep your date information in VARCHAR2 a column, then use TO_DATE in the query. It will be slow, and you'll have run-time errors if any of the information is in the wrong format. That's what happens when you store date information in VARCHAR2 columns.
    I hope this answers your question.
    If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all tables involved, and also post the results you want from that data.
    Explain, using specific examples, how you get those results from that data.
    Always say which version of Oracle you're using.
    See the forum FAQ {message:id=9360002}

  • Sdo_nn is not showing desired results

    Hello,
    We have the following query :
    SELECT p.codigo_proveedor_ca, p.descripcion AS Proveedor, DECODE(p.habitual,0,'N','S') AS HAB, DECODE(p.h_24,0,'N','S') H24,
         b.codigo_base, b.tipo_via || ' ' || b.nom_via || ',' || b.numero_via || ' ' || B.PISO AS DIRECCION_PROV, b.codigo_pais,
    b.codigo_provincia, b.codigo_ine, b.codigo_zona, mg.numero AS NUMERO_GEN, b.localidad, ROUND(MDSYS.SDO_NN_DISTANCE(1),0) AS DISTANCIA,
    b.GIS_X, b.GIS_Y, b.GIS_NIVEL_XY, b.GIS_GEO_OK, b.GIS_TIPO_SRIDENUM
    FROM SAT_BASES_PROVEEDORES b,
         SAT_BASE_PROVEEDOR_MEDIOS_GEN mg,
         SAT_PROVEEDORES_CA p
    WHERE b.codigo_pais = 'ESP' AND b.activo = 1
    AND mg.codigo_proveedor_ca = b.codigo_proveedor_ca AND mg.codigo_base = b.codigo_base
         -- Medio Genérico 'TAXI'
         AND mg.codigo_medio_generico = '2' AND mg.activo = 1 AND P.ACTIVO = 1
         AND p.codigo_proveedor_ca = b.codigo_proveedor_ca
         -- Coordinates of GRANOLLERS
         AND SDO_NN(b.GEOMETRIA,MDSYS.SDO_Geometry(2001, 1000000,MDSYS.SDO_Point_type(188161,5043776,NULL),NULL, NULL) ,
         'SDO_BATCH_SIZE = 25', 1 ) = 'TRUE'
    ORDER BY DISTANCIA;
    What we want is to get the providers which are near to a given town. To get this we are using SDO_NN function and also
    SDO_NN_DISTANCE to calculate the distance to the given coordinates.
    Our problem is that there are two providers with the same coordinates that should be shown in the query result but one of them is not shown and we don't understand why.
    If we use SDO_NUM_RES instead of SDO_BATCH_SIZE the provider is shown, but as far as I know, if you use this parameter not all the WHERE clauses are evaluated. Am I wrong?
    What are we doing wrong?
    Thanks in advance,
    Eva.

    Are you on Oracle 9i? In 9i, I have never been able to get this query to work successfully this way. I had to rewrite it to use a in-line view and a rownum and make some other changes. I think it is buggy, as are many of the 9i spatial objects (full of horrid memory leaks etc.)
    I have been able to hack around the fact that it cannot find the nearest neighbor on it's own, by using an inline view in this way, but it has holes, I am sure:
    Select DISTANCE, (list all your other selections) from
    SELECT /*+ordered*/ SDO_NN_DISTANCE(1) DISTANCE, p.codigo_proveedor_ca, p.descripcion AS Proveedor, DECODE(p.habitual,0,'N','S') AS HAB, DECODE(p.h_24,0,'N','S') H24,
    b.codigo_base, b.tipo_via || ' ' || b.nom_via || ',' || b.numero_via || ' ' || B.PISO AS DIRECCION_PROV, b.codigo_pais,
    b.codigo_provincia, b.codigo_ine, b.codigo_zona, mg.numero AS NUMERO_GEN, b.localidad, ROUND(MDSYS.SDO_NN_DISTANCE(1),0) AS DISTANCIA,
    b.GIS_X, b.GIS_Y, b.GIS_NIVEL_XY, b.GIS_GEO_OK, b.GIS_TIPO_SRIDENUM
    FROM SAT_BASES_PROVEEDORES b,
    SAT_BASE_PROVEEDOR_MEDIOS_GEN mg,
    SAT_PROVEEDORES_CA p
    WHERE b.codigo_pais = 'ESP' AND b.activo = 1
    AND mg.codigo_proveedor_ca = b.codigo_proveedor_ca AND mg.codigo_base = b.codigo_base
    -- Medio Genérico 'TAXI'
    AND mg.codigo_medio_generico = '2' AND mg.activo = 1 AND P.ACTIVO = 1
    AND p.codigo_proveedor_ca = b.codigo_proveedor_ca
    -- Coordinates of GRANOLLERS
    AND SDO_NN(b.GEOMETRIA,MDSYS.SDO_Geometry(2001, 1000000,MDSYS.SDO_Point_type(188161,5043776,NULL),NULL, NULL) ,
    'SDO_BATCH_SIZE = 25', 1 ) = 'TRUE'
    AND ROWNUM < 1000
    ORDER BY DISTANCE
    WHERE ROWNUM < 2';
    This should give you the closest result. If you want the closest 2, you would set that in the last line. I had to mess around with the rownum < 1000 line in my query. It appears that the order by distance has no affect. If I set it to ROWNUM < 50, often times, the closest 2 items weren't in the inner select elements. So they weren't available in the outer results.
    I also found this issue very frustrating. I actually had a hard time believeing it was so junky, until I proved it was the problem with this statement. Please let us know if it solves your issue also.

Maybe you are looking for

  • Error comes while save a smart style

    Hi all While i am creating a smart style message comes 'Object can only be created in SAP package' .Then after creating a smrt style then when i am trying to save this smart style the error message comes like that 'SAP object [[style name]] cannot be

  • FBL1N - vendor ledger-layout

    HI EXPERTS ! The transaction code for the report we r using is FBL1N - vendor ledger. we require the vendor's bank detail in this report at the header i.e. vendor bank name , account no..( basically change layout of report for output ) this detail ca

  • Extraction method for purchasing info

    Hi all! I need some help with this (see the infosource section) [http://help.sap.com/saphelp_nw70/helpdata/en/ed/62073c44564d59e10000000a114084/frameset.htm ] as you can see the document says you can choose one of two methods of extraction. Could you

  • Aperture 2.1.4 crashes using Lion 10.7.2

    I am not sure if it is just because I am now using Lion, but my editing software keeps crashing about ever 10 to 30 photos I go through. Its really frustrating especially when Im on a roll and I have to stop and wait for the program to reload. I have

  • I am new to Photoshop CC. I am trying to use the magic wand to highlight a dull sky, and it is just making a weird selection that has nothing to do with my photo

    I am trying to use the Magic Wand to highlight a dull sky so that I can add something more interesting. When I try to isolate this area, the magic wand seems to just make a random selection throughout my photo. I have anit-alias on, and my tolerance