我有这个问题:
SELECT DO3Tbl.CodeDip, DO3Tbl.BarcodeD, Sum(DO3Tbl.Qty) AS Qty,
Max(DO3Tbl.Mly) AS Mly, [Qty]-[Mly] AS Tot, ABS(Tot) AS TotAbs
当我在访问其工作中运行此查询时非常好
但是当我用C#代码运行这个查询时:
SQL = SELECT DO3Tbl.CodeDip, DO3Tbl.BarcodeD, Sum(DO3Tbl.Qty) AS Qty,
Max(DO3Tbl.Mly) AS Mly, [Qty]-[Mly] AS Tot, ABS(Tot) AS TotAbs
Cmd = new OleDbCommand(SQL, Conn);
Cmd.ExecuteNonQuery();
Cmd.Dispose();
我收到此错误:
您尝试执行的查询不包含指定表达式'[Qty] - [Mly]'作为聚合函数的一部分。
答案 0 :(得分:1)
就Access而言,查询存在很多错误,例如,您不是从任何表中进行选择,也不能使用与字段名称相同的别名。怎么样:
SELECT DO3Tbl.CodeDip, DO3Tbl.BarcodeD, Sum(DO3Tbl.Qty) AS SumOfQty, Max(DO3Tbl.Mly) AS MaxOfMly, Sum([Qty]-[Mly]) AS Tot, Abs(Tot) AS TotAbs
FROM DO3Tbl
GROUP BY DO3Tbl.CodeDip, DO3Tbl.BarcodeD;
答案 1 :(得分:0)
我建议不要计算
托特 和 TotAbs
直接在查询中的值。
最好在代码中计算它们,因为我们能够避免与SELECT子句中的查询执行顺序相关的任何问题。
因此您的查询将是这样的:
SELECT DO3Tbl.CodeDip, DO3Tbl.BarcodeD, Sum(DO3Tbl.Qty) AS Qty,
Max(DO3Tbl.Mly) AS Mly
干杯。