我试图在mvc数据库中查询,我想按订单日期计算购买id和组。这是我的购买模型:
public class Purchase
{
public int PurchaseID { get; set; }
public int CustomerID { get; set; }
public bool DeliveryChoice { get; set; }
public int? DriverID { get; set; }
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
[Display(Name = "Order Date")]
}
,这是我的查询:
SELECT
Purchase.PurchaseID,
Purchase.OrderDate,
COUNT(*)
From Purchase
GROUP BY Purchase.OrderDate;
这是我执行它时得到的消息:
留言8120,16层,状态1,线路1
列的购买。PurchaseID'在选择列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中。
我该如何修改它以允许我按日期(yyyy-MM-dd)分组并计算购买的商品
如果您需要按日期分组计算purchaseID,那么您需要像这样的查询:
select
convert(nvarchar(10), Purchase.OrderDate, 112) as OrderDate,
count(Purchase.PurchaseID)
from Purchase
group by convert(nvarchar(10), Purchase.OrderDate, 112)
将Purchase.PurchaseID
移到聚合函数count
的参数
你得到了你提到的错误,因为当你分组查询的结果-然后每个选择的值应该是你分组的列,或一些聚合函数的结果-这正是在错误文本中所述的