Group by Query Error

  • here please refer the table:

    in that table value:

    1 is Order No

    ABCL is Client Name

    12/1/2009 12:00:00 AM is OrderDate

    ARMIS - is Product

    1000 is Value

    1 is InvoiceQuantity

    1 is Pendingquantity

    1ABCL12/1/2009 12:00:00 AMARMIS1000011

    1HAL12/1/2009 12:00:00 AMARMIS200022

    1NAL12/1/2009 12:00:00 AMTimeCheck2000022

    2HidusthanLeaver12/1/2009 12:00:00 AMARMIS200022

    2IOC12/1/2009 12:00:00 AMTimeCheck3000022

    3BEML12/1/2009 12:00:00 AMARMIS40000022

    3ABCL12/1/2009 12:00:00 AMTimeCheck50000033

    I am using the following Groupby Query

    select OrderFormNo,ClientName,OrderDate,Product,sum(Value),

    InvoiceQuantity,PendingQuantity from AOM_Tbl_PendingOrders group by OrderFormNo, ClientName,OrderDate

    I have got the erreor below

    Msg 8120, Level 16, State 1, Line 1

    Column 'AOM_Tbl_PendingOrders.Product' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

    Msg 8120, Level 16, State 1, Line 1

    Column 'AOM_Tbl_PendingOrders.InvoiceQuantity' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

    Msg 8120, Level 16, State 1, Line 1

    Column 'AOM_Tbl_PendingOrders.PendingQuantity' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

    Can any one solve this issue.

  • These error messages are pretty clear.

    Read the error messages then look at your query.

  • suresh,

    Try this: -

    select OrderFormNo

    ,ClientName

    ,OrderDate

    ,Product

    ,sum(Value)

    ,InvoiceQuantity

    ,PendingQuantity

    from AOM_Tbl_PendingOrders

    group by OrderFormNo, ClientName,OrderDate,Product,InvoiceQuantity,PendingQuantity

    In your case, remember that whenever you use the group by clause you need to add all the other colums as well except the function column (i.e. sum)

  • What every one else said, and also ...

    Why are you even trying to use a SUM ... when you're only looking at one row?

  • Hi,

    instead using all the columns in the group by clause, you can use aggregate function "OVER BY " in the query............

    OR

    give me the details of the output what u want.....

  • In group by clause, you should include all the columns present in the select list that are not aggregated.

    So, in this example include all the columns in the group by clause except Sum(Value).

  • There is no sense the query you asked for, but it is possible to retrieve the info you need, just

    build your query like the below one:

    SELECT OrderFormNo

    ,ClientName

    ,OrderDate

    ,Product

    ,sum(Value)as Total

    ,InvoiceQuantity

    ,PendingQuantity

    FROM AOM_Tbl_PendingOrders

    GROUP BY OrderFormNo, ClientName,OrderDate, InvoiceQuantity, PendingQuantity, product

    But remember there is no sense you get all the fields to sum. You must build a result set with some sense for example:

    SELECT ClientName, OrderDate, Sum(value) as Total

    FROM AOM_Tbl_PendingOrders

    Group By ClientName, OrderDate

    The above query is gathering All Orders made in a time stamp from customers and applying a sum on value field.

    It has sense because you can count and know how much you have gain in that time for each Customer.

    I know it is an old post, but I resolved to explain a little bit more why it had no sense like some folks were talking!

    Regards

    Best Regards,
    Marcos Rosa / marcosfac@gmail.com

Viewing 7 posts - 1 through 6 (of 6 total)

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