Is there a way to do this?

  • Hi,

    I am using the query below and am getting back four 'Gary' records. Which I understand why that's correct for the way I have it written.

    But what I really need is one 'Alstrand, Gary' record with the amount and hours summed. Everything else ignored.

    How can I do that?

    SELECT

    PH.PehOrgLvl1 as Branch

    , PH.PehOrgLvl2 as Dept

    , GL.GLRBASEACCT AS Acct

    , LTRIM(RTRIM(PR.PRGNAMELAST + '')) + ', ' + LTRIM(RTRIM(PR.PRGNAMEFIRST + '')) as DESCRIPTION

    , PH.PehHourlyPayRate as Rate

    , PH.PEHCURAMT as TRANSACTIONAMT

    , PH.PEHCURHRS as HOURS

    , PR.PRGPAYDATE as APPLYDATE

    , PH.PEHCHARGEDATE as ENTRYDATE

    FROM GSHQSQL4.ULTIPRO_WSI.DBO.PEARHIST PH, GSHQSQL4.ULTIPRO_WSI.DBO.PAYREG PR, GSHQSQL4.ULTIPRO_WSI.DBO.GLDEFRLS GL

    WHERE PH.PEHGENNUMBER = PR.PRGGENNUMBER AND PH.PEHEARNCODE = GL.GLRCOMPONENTCODE

    AND (GL.GLRBASEACCT = '5200' OR GL.GLRBASEACCT = '5204')

    AND PH.PEHORGLVL1 NOT IN ('WSI180','WSI184', 'WSIW01')

    --AND PR.PRGPAYDATE >= '09/01/2013' and PH.PEHCHARGEDATE < '09/30/2013'

    AND PH.PEHCHARGEDATE >= '09/01/2013' and PH.PEHCHARGEDATE < '09/30/2013'

    AND PH.PehOrgLvl1 = 'WSI112'

    AND PH.PEHORGLVL2 = 'WSIAMS'

    and LTRIM(RTRIM(PR.PRGNAMELAST + '')) + ', ' + LTRIM(RTRIM(PR.PRGNAMEFIRST + '')) like 'Alstrand, Gary'

    ORDER BY DEscription ASC

  • krypto69 (10/16/2013)


    Hi,

    I am using the query below and am getting back four 'Gary' records. Which I understand why that's correct for the way I have it written.

    But what I really need is one 'Alstrand, Gary' record with the amount and hours summed. Everything else ignored.

    How can I do that?

    What do you mean by ignored? Meaning you don't want those columns in the output?

    In order to help we will need a few things:

    1. Sample DDL in the form of CREATE TABLE statements

    2. Sample data in the form of INSERT INTO statements

    3. Expected results based on the sample data

    Please take a few minutes and read the first article in my signature for best practices when posting questions.

    You might also consider writing your joins in ANSI-92 instead of the older ANSI-89 style.

    Something like this:

    ...

    FROM GSHQSQL4.ULTIPRO_WSI.DBO.PEARHIST PH

    join GSHQSQL4.ULTIPRO_WSI.DBO.PAYREG PR on PH.PEHGENNUMBER = PR.PRGGENNUMBER

    join GSHQSQL4.ULTIPRO_WSI.DBO.GLDEFRLS GL on PH.PEHEARNCODE = GL.GLRCOMPONENTCODE

    WHERE (GL.GLRBASEACCT = '5200' OR GL.GLRBASEACCT = '5204')

    _______________________________________________________________

    Need help? Help us help you.

    Read the article at http://www.sqlservercentral.com/articles/Best+Practices/61537/ for best practices on asking questions.

    Need to split a string? Try Jeff Modens splitter http://www.sqlservercentral.com/articles/Tally+Table/72993/.

    Cross Tabs and Pivots, Part 1 – Converting Rows to Columns - http://www.sqlservercentral.com/articles/T-SQL/63681/
    Cross Tabs and Pivots, Part 2 - Dynamic Cross Tabs - http://www.sqlservercentral.com/articles/Crosstab/65048/
    Understanding and Using APPLY (Part 1) - http://www.sqlservercentral.com/articles/APPLY/69953/
    Understanding and Using APPLY (Part 2) - http://www.sqlservercentral.com/articles/APPLY/69954/

  • You're not grouping or using any aggregate functions. That might be your problem.

    Without some sample data, we might not be able to help you. Please read the article linked on my signature to obtain better help.

    Luis C.
    General Disclaimer:
    Are you seriously taking the advice and code from someone from the internet without testing it? Do you at least understand it? Or can it easily kill your server?

    How to post data/code on a forum to get the best help: Option 1 / Option 2

Viewing 3 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic. Login to reply