Best Online Tutorials

SQL Tutorial

Free SQL Tutorial

SQL Interview Questions

SQL Practice Questions

SQL Tips & Tricks

SQL Errors

SQL Books

Angular Tutorial

Free Angular Tutorial

Angular Interview Questions

Angular Practice Questions

Angular Tips & Tricks

Angular Errors

Angular Books

Node.js Tutorial

Free Node.js Tutorial

Node.js Interview Questions

Node.js Practice Questions

Node.js Tips & Tricks

Node.js Errors

Node.js Books

React.js Tutorial

Free React.js Tutorial

React.js Interview Questions

React.js Practice Questions

React.js Tips & Tricks

React.js Errors

React.js Books

SSIS Tutorial

Free SSIS Tutorial

SSIS Interview Questions

SSIS Practice Questions

SSIS Tips & Tricks

SSIS Errors

SSIS Books

SEO Tutorial

Free SEO Tutorial

SEO Interview Questions

SEO Practice Questions

SEO Tips & Tricks

SEO Errors

SEO Books

Javascript Tutorial

Free Javascript Tutorial

Javascript Interview Questions

Javascript Practice Questions

Javascript Tips & Tricks

Javascript Errors

Javascript Books

MongoDB Tutorial

Free MongoDB Tutorial

MongoDB Interview Questions

MongoDB Practice Questions

MongoDB Tips & Tricks

MongoDB Errors

MongoDB Books

Next.js Tutorial

Free Next.js Tutorial

Next.js Interview Questions

Next.js Practice Questions

Next.js Tips & Tricks

Next.js Errors

Next.js Books

Error Messages (Msg 164): Each GROUP BY expression must contain at least one column that is not an outer reference. 

Pooja Goel  |   Mar 20, 2020  |  Views: 324
pictures

Description:

Let’s suppose you are executing the given queries in SQL Server.


 

CREATE TABLE [dbo].[ProductSale] (
    [SalesMen]       VARCHAR(50),
    [Product]         VARCHAR(max),
    [ProductCost]      MONEY,
       [ProductBuyDate]      DateTime,
)
 
SELECT [SalesMen], [Product], SUM([ProductCost]) AS [TotalCost],'2020' as [ProductSaleYear]
FROM [dbo].[ProductSale]
WHERE [ProductBuyDate] >= '01/01/2020' AND
      [ProductBuyDate] <  '01/03/2020'
GROUP BY [SalesMen],[Product],2020

 

Error Message:

But getting the below error. 


Msg 164, Level 15, State 1, Line 5
Each GROUP BY expression must contain at least one column that is not an outer reference.

 

 

Causes:

In above SQL statement, Local variables means that ‘2020 as  ProductSaleYear’ is used  in a SELECT statement with the GROUP BY clause.

 

Solution of the Error:

To avoid this error, when using local variables in a SELECT statement with the GROUP BY clause, don’t include the local variable in the GROUP BY clause but can use  it in the SELECT clause.

 

 

Solution of above

 

SELECT [SalesMen], [Product], SUM([ProductCost]) AS [TotalCost],'2020' as [ProductSaleYear]
FROM [dbo].[ProductSale]
WHERE [ProductBuyDate] >= '01/01/2020' AND
      [ProductBuyDate] <  '01/03/2020'
GROUP BY [SalesMen],[Product]

 

 

 


Comments:
Content Contributor
Pooja Goel

Pooja Goel

Sr. Software developer at Damco Solutions Pvt. Ltd.  |   Noida, Uttar Pradesh, India

I am a sr. software developer working on technologies like SQL, SSIS, SSRS, DB2,Tableau, ASP.NET having 7 years of experience.


Read related articles

Want to sell your software ?-

If you want to sell your readymade software to the genuine clients or businessman, list your software with details and demo links.

  • Sell ERP
  • Sell Website Clones
  • Sell App Clones
  • Sell Readymade Portals
  • Sell Readymade Websites
  • Sell Mobile Apps
  • Sell Window Apps

Clients will find it using our advanced search filter and will contact you directly.

No any charge for the product lsiting.

Do you own a Company ?+

Property.sale

Buy or Sell Commercial Property+

Are you a freelancer ?+

Looking for a job ?+

Are you a Service Provider ?+

Are you a blogger ?+

Do you own an IT Institute ?+



Property.sale