• Kevin.roberts25 (2/20/2013)


    Ok I have 26 reports to create, the end result would look something like this

    Description, Period1, Period2, Period3


    Average Sales, 25, 45, 67

    Totals Team 1, 53, 74, 27

    Totals Team 2, 36,49, 35

    Totals Team 3, 36,49, 35

    Totals Team 4, 36,49, 35

    for the descriptions of all the report rows I have stored them in a table TABLE A

    ID INT,

    ReportNo int,

    LineSequence int, -- This is the order I want the description to be on the report

    Description varchar(255) -- examples Totals Team 1

    to calculate this what I want is the following. I will be loading the descriptions by passing the report number and ordering by Description. I want to call the rellevant sql queries stored in a table that will allow me to

    Description, Period1, Period2, Period3


    Average Sales, (sql query from database where @ReportNo =1 and @LineSequence=1 and @Period=1 ), (sql query from database), (sql query from database)

    Totals Team 1,(sql query from database where @ReportNo =1 and @LineSequence=2 and @Period=1 ), (sql query from database), (sql query from database)

    Totals Team 2, (sql query from database where @ReportNo =1 and @LineSequence=3 and @Period=1 ), (sql query from database), (sql query from database)

    Totals Team 3,(sql query from database where @ReportNo =1 and @LineSequence=4 and @Period=1 ),(sql query from database), (sql query from database)

    Totals Team 4,(sql query from database where @ReportNo =1 and @LineSequence=5 and @Period=1 ),(sql query from database), (sql query from database)

    This is known as a "Crosstab" or "Pivot". Please see the following articles for high performance solutions on the subject.

    http://www.sqlservercentral.com/articles/T-SQL/63681/

    http://www.sqlservercentral.com/articles/Crosstab/65048/

    If you'd like a specific coded answer, please see the article at the first link below.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)