C# C中的sql命令错误#

C# C中的sql命令错误#,c#,sql-server,C#,Sql Server,我编写这段代码是为了从数据库中的两个表中检索一些信息。但是当我运行它时,我得到了这个错误 列'eated_food.Cardserial'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中 代码: 如何解决它?问题在于您的sql查询。如果使用分组依据,则无法选择未按分组或未聚合的列(例如,使用Min/Max/Avg/Count) 因此,您可以通过以下方式使其工作:例如,在此处更改您的旧查询: SELECT eaten_food.cardserial, eaten_f

我编写这段代码是为了从数据库中的两个表中检索一些信息。但是当我运行它时,我得到了这个错误

列'eated_food.Cardserial'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中

代码:


如何解决它?

问题在于您的sql查询。如果使用
分组依据
,则无法选择未按分组或未聚合的列(例如,使用
Min/Max/Avg/Count

因此,您可以通过以下方式使其工作:例如,在此处更改您的旧查询:

SELECT eaten_food.cardserial, 
       eaten_food.date, 
       eaten_food.turn, 
       avb_food_count, 
       reserve_count 
FROM   reserve 
       INNER JOIN eaten_food 
               ON reserve.cardserial = eaten_food.cardserial 
GROUP  BY eaten_food.date 
致:


SQL语句本身有问题。我会将其复制到SQL management studio并进行调试

group函数用于创建摘要行,因此select列需要是group by子句的一部分,或者是statmet的摘要类型,如sum(x)或count(x)

下面的方法可能有效

SELECT  Eaten_food.Cardserial ,
        Eaten_food.Date ,
        Count(Eaten_food.Turn) ,
        sum(Avb_food_count) ,
        sum(Reserve_count)
FROM    Reserve
        INNER JOIN Eaten_food ON Reserve.Cardserial = Eaten_food.Cardserial
GROUP BY Eaten_food.Date, Eaten_food.CardSerial

您希望查询的
分组依据
部分实现什么?
SELECT MIN(eaten_food.cardserial)AS Cardserial, 
       eaten_food.date, 
       MIN(eaten_food.turn) AS Turn, 
       SUM(avb_food_count) AS SumFoodCount, 
       SUM(reserve_count) AS SumReserveCount 
FROM   reserve 
       INNER JOIN eaten_food 
               ON reserve.cardserial = eaten_food.cardserial 
GROUP  BY eaten_food.date 
SELECT  Eaten_food.Cardserial ,
        Eaten_food.Date ,
        Count(Eaten_food.Turn) ,
        sum(Avb_food_count) ,
        sum(Reserve_count)
FROM    Reserve
        INNER JOIN Eaten_food ON Reserve.Cardserial = Eaten_food.Cardserial
GROUP BY Eaten_food.Date, Eaten_food.CardSerial