PDA

View Full Version : مشکل با یک دستور sql در C#‎.Net



hesampersian
جمعه 14 اسفند 1388, 12:08 عصر
سلام دوستان

من یک دستور بصورت زیر نوشتم :


SELECT DISTINCT
SellsTable.SellID, SellsTable.SellName, SellsTable.CustomerID, SellsTable.StartDate, SellsTable.EndDate, SellsTable.LastChangeDate, SellsTable.LastStateID,
SellsTable.UserID, CustomerTable.CustomerName, CustomerTable.Mobile, CustomerTable.CustomerID AS Expr1, SellsTable.Balance,
SUM(FactorProductTable.Count) AS Expr2
FROM CustomerTable INNER JOIN
SellsTable ON CustomerTable.CustomerID = SellsTable.CustomerID INNER JOIN
FactorTable ON SellsTable.SellID = FactorTable.SellID INNER JOIN
FactorProductTable ON FactorTable.FactorID = FactorProductTable.FactorID

دستور مهم نیست مهم این خط هست SUM(FactorProductTable.Count) AS Expr2

که وقتی این اضافه میشه اررور زیر داده میشه


---------------------------
Microsoft Visual Studio
---------------------------
SQL Execution Error.

Executed SQL statement: SELECT DISTINCT SellsTable.SellID, SellsTable.SellName, SellsTable.CustomerID, SellsTable.StartDate, SellsTable.EndDate, SellsTable.LastChangeDate, SellsTable.LastStateID, SellsTable.UserID, CustomerTable.CustomerName, CustomerTable.Mobile, CustomerT...
Error Source: .Net SqlClient Data Provider
Error Message: Column 'SellsTable.SellID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
---------------------------


ممنون میشم راهنمای کنید:عصبانی++:

saed2006
جمعه 14 اسفند 1388, 13:18 عصر
شما باید GROUP BY رو هم واسش تعریف کنی

hesampersian
جمعه 14 اسفند 1388, 13:35 عصر
دوست عزیز لطفا کدش رو میگید من هر کار میکنم اررور میده
ممنون

saed2006
جمعه 14 اسفند 1388, 16:06 عصر
هر فیلدی را که در جلوی GroupBy بنویسید باید در قسمت Select هم بنویسید.

hakelberfin
شنبه 15 اسفند 1388, 01:40 صبح
هر فیلدی را که در جلوی GroupBy بنویسید باید در قسمت Select هم بنویسید.


البته بصورت برعکس .
هر فیلدی که در جلوی دستور Select داری (جز توابعی مثل SUM و MAX و ...) باید در جلوی Group By بیان

Himalaya
شنبه 15 اسفند 1388, 11:29 صبح
hakelberfin (http://barnamenevis.org/forum/member.php?u=103938) به نظرم اشتباه میکنی
saed2006 (http://barnamenevis.org/forum/member.php?u=12545) درست میگه