SELECT
id_stock,
qty_entry,
qty_out,
MAX(total),
comment,
datetime
FROM
App.stock_card
Error
[Err] 42000 - [SQL Server]Column 'App.stock_card.id_stock' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
ทําไมมันถึง Error แล้วจะแก้ไขยังไงครับ เคยใช้แต่ Mysql มันไม่เป็นอะไร
Tag : .NET
Date :
2014-09-01 09:31:40
By :
kenghockey
View :
1200
Reply :
3
No. 1
Guest
วันนี้หวยออก และในกรณีที่หนีหนี้
MySQL Max(Field) == SQL Server Max(Field) Over (Partition By (Select 0))
(อาจจะเรียกง่ายฯก็ได้ว่า Max(Field) without Group By)
Code (SQL)
SELECT
id_stock,
qty_entry,
qty_out,
Max(total) Over (Partition By (Select 0)),
comment,
datetime
FROM
App.stock_card
Select App.stock_card.*, --อันนี้ผมขี้เกียจพิมพ์
tmpTable.maxTotal
From App.stock_card
CROSS APPLY (Select MAX(tmpXXX.total) Over (Partition By (Select 0)) As maxTotal From App.stock_card As tmpXXX) As tmpTable
หรือจะเขียนแบบนี้ก็ได้ โดยใช้ Common Table Expressions
Code (SQL)
;WITH tmpTable --อย่าลืมเครื่องหมายตัวนี้นะครับ ;
AS
(
Select MAX(total) Over (Partition By (Select 0)) As maxTotal From App.stock_card
)
SELECT
id_stock,
qty_entry,
qty_out,
maxTotal,
comment,
datetime
FROM
App.stock_card LEFT OUTER JOIN tmpTable ON 1 = 1