Error while grouping after a join
See original GitHub issueI see the following exception
Exception message: 'p.ProductDescription' cannot be converted to SQL.
Stack trace: in LinqToDB.Linq.Builder.SelectContext.GetMemberExpression(MemberInfo member, Boolean add, Type type, Expression sourceExpression) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\SelectContext.cs:riga 1163
in LinqToDB.Linq.Builder.SelectContext.ConvertToSql(Expression expression, Int32 level, ConvertFlags flags) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\SelectContext.cs:riga 344
in LinqToDB.Linq.Builder.SelectContext.ConvertToIndexInternal(Expression expression, Int32 level, ConvertFlags flags) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\SelectContext.cs:riga 556
in LinqToDB.Linq.Builder.SelectContext.ConvertToIndex(Expression expression, Int32 level, ConvertFlags flags) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\SelectContext.cs:riga 432
in LinqToDB.Linq.Builder.SubQueryContext.ConvertToSql(Expression expression, Int32 level, ConvertFlags flags) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\SubQueryContext.cs:riga 100
in LinqToDB.Linq.Builder.SelectContext.<>c__DisplayClass37_0.<ConvertToSql>b__0(IBuildContext ctx, Expression ex, Int32 l) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\SelectContext.cs:riga 302
in LinqToDB.Linq.Builder.SelectContext.ProcessScalar[T](Expression expression, Int32 level, Func`4 action, Func`1 defaultAction) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\SelectContext.cs:riga 903
in LinqToDB.Linq.Builder.SelectContext.ConvertToSql(Expression expression, Int32 level, ConvertFlags flags) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\SelectContext.cs:riga 299
in LinqToDB.Linq.Builder.ExpressionBuilder.ConvertToSql(IBuildContext context, Expression expression, Boolean unwrap) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.SqlBuilder.cs:riga 856
in LinqToDB.Linq.Builder.ExpressionBuilder.ConvertExpressions(IBuildContext context, Expression expression, ConvertFlags queryConvertFlag) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.SqlBuilder.cs:riga 661
in LinqToDB.Linq.Builder.SelectContext.ConvertToSql(Expression expression, Int32 level, ConvertFlags flags) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\SelectContext.cs:riga 281
in LinqToDB.Linq.Builder.SelectContext.ConvertToIndexInternal(Expression expression, Int32 level, ConvertFlags flags) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\SelectContext.cs:riga 479
in LinqToDB.Linq.Builder.SelectContext.ConvertToIndex(Expression expression, Int32 level, ConvertFlags flags) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\SelectContext.cs:riga 432
in LinqToDB.Linq.Builder.FirstSingleBuilder.FirstSingleContext.ConvertToIndex(Expression expression, Int32 level, ConvertFlags flags) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\FirstSingleBuilder.cs:riga 276
in LinqToDB.Linq.Builder.ExpressionBuilder.GetSubQuery(IBuildContext context, MethodCallExpression expr) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.SqlBuilder.cs:riga 238
in LinqToDB.Linq.Builder.ExpressionBuilder.GetSubQueryContext(IBuildContext context, MethodCallExpression expr) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.QueryBuilder.cs:riga 310
in LinqToDB.Linq.Builder.ExpressionBuilder.GetSubQueryExpression(IBuildContext context, MethodCallExpression expr, Boolean enforceServerSide) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.QueryBuilder.cs:riga 327
in LinqToDB.Linq.Builder.ExpressionBuilder.TransformExpression(IBuildContext context, Expression expr, Boolean enforceServerSide) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.QueryBuilder.cs:riga 260
in LinqToDB.Linq.Builder.ExpressionBuilder.<>c__DisplayClass74_0.<BuildExpression>b__0(Expression expr) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.QueryBuilder.cs:riga 49
in LinqToDB.Expressions.Extensions.Transform(Expression expr, Func`2 func) in C:\projects\linq2db\Source\LinqToDB\Expressions\Extensions.cs:riga 1353
in LinqToDB.Expressions.Extensions.<>c__DisplayClass34_0.<Transform>g__Modify|1(MemberBinding b) in C:\projects\linq2db\Source\LinqToDB\Expressions\Extensions.cs:riga 1500
in LinqToDB.Expressions.Extensions.Transform2[T](ICollection`1 source, Func`2 func) in C:\projects\linq2db\Source\LinqToDB\Expressions\Extensions.cs:riga 1321
in LinqToDB.Expressions.Extensions.Transform(Expression expr, Func`2 func) in C:\projects\linq2db\Source\LinqToDB\Expressions\Extensions.cs:riga 1546
in LinqToDB.Linq.Builder.ExpressionBuilder.BuildExpression(IBuildContext context, Expression expression, Boolean enforceServerSide) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.QueryBuilder.cs:riga 49
in LinqToDB.Linq.Builder.SelectContext.BuildExpression(Expression expression, Int32 level, Boolean enforceServerSide) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\SelectContext.cs:riga 112
in LinqToDB.Linq.Builder.SelectContext.BuildQuery[T](Query`1 query, ParameterExpression queryParameter) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\SelectContext.cs:riga 65
in LinqToDB.Linq.Builder.ExpressionBuilder.Build[T]() in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.cs:riga 159
in LinqToDB.Linq.Query`1.CreateQuery(IDataContext dataContext, Expression expr) in C:\projects\linq2db\Source\LinqToDB\Linq\Query.cs:riga 280
in LinqToDB.Linq.Query`1.GetQuery(IDataContext dataContext, Expression& expr) in C:\projects\linq2db\Source\LinqToDB\Linq\Query.cs:riga 233
in LinqToDB.Linq.ExpressionQuery`1.GetQuery(Expression& expression, Boolean cache) in C:\projects\linq2db\Source\LinqToDB\Linq\ExpressionQuery.cs:riga 84
in LinqToDB.Linq.ExpressionQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() in C:\projects\linq2db\Source\LinqToDB\Linq\ExpressionQuery.cs:riga 179
in System.Linq.Buffer`1..ctor(IEnumerable`1 source)
in System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
in Import2TSS.Alerting.ComputPLInternal(DataConnection db, Action`1 Log, Nullable`1 cargoid) in C:\compliance\MAR_Reporting_API_Sourcing\OilPhysical_ImportCsv2DB\DB\Alerting.cs:riga 635
in Import2TSS.Alerting.Detect(Action`1 Log, String ConnName, DateTime asofDate) in C:\compliance\MAR_Reporting_API_Sourcing\OilPhysical_ImportCsv2DB\DB\Alerting.cs:riga 844
Steps to reproduce
after the code
var queryTotCosts =
from c in db.GetTable<Cost>()
join n in db.GetTable<NominationValid>()
on new
{
c.CargoID,
c.DeliveryID,
c.DealNumber,
c.ParcelID
} equals new
{
n.CargoID,
n.DeliveryID,
DealNumber = n.DeliveryDealNumber > 0 ? n.DeliveryDealNumber : n.ReceiptDealNumber,
ParcelID = n.DeliveryDealNumber > 0 ? n.DeliveryParcelID : n.ReceiptParcelID
}
join t in db.GetTable<TradeValid>()
on new { c.DealNumber, c.ParcelID } equals new { t.DealNumber , t.ParcelID }
where c.OperationType != Cost.Operations.Delete.GetEnumDescription() &&
(cargoid == null || c.CargoID == cargoid)
group new { c.FeePV, n.ProductDescription, t.PortfolioName }
by new { n.CargoID, c.Currency ,c.PayRec, n.TitleTranfertDate} into cargoGr
select new CostTotal
{
CargoID = cargoGr.Key.CargoID,
PayRec = cargoGr.Key.PayRec,
TotAmount = cargoGr.Sum(cst => cst.FeePV),
Currency = cargoGr.Key.Currency,
TitleTransferDate = cargoGr.Key.TitleTranfertDate,
Commodity = cargoGr.FirstOrDefault().ProductDescription,
Portfolio = cargoGr.FirstOrDefault().PortfolioName
};
var totCosts = queryTotCosts.ToArray();
Environment details
linq2db version: 2.5.4.0 Database Server: Ms Sql 2016 Operating system: Windows 7 Framework version: *.NET Framework 4.5.2
Issue Analytics
- State:
- Created 5 years ago
- Comments:33 (13 by maintainers)
Top Results From Across the Web
Why am I getting an error while using group by with a left ...
You have to point by which comment_id it will be grouped. So you have to change line: GROUP BY comment_id. into. GROUP BY...
Read more >7 Common GROUP BY Errors
1. Forgetting GROUP BY with Aggregate Functions · 2. Confusing WHERE and HAVING · 3. Listing a Column Inside SELECT but Not in...
Read more >[Solved] Sql group by error in inner join please help me
Column 'TBL_pur_inv.invno' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause....
Read more >Group BY DESC being ignored after join - Mysql 5
ASC/DESC in GROUP BY cannot specify what value from all possible in a group will be taken for non-aggregated and non-grouped output column....
Read more >I can't join a group
If you're banned from a group, you'll get an error message when you try to join it. A group owner or manager can...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
~Maybe you have to add
booking_company
into partition?~Good 😃
I hopefully see… the problem is that I have multiple title transfer dates… Ok, your suggestion was really key! Thank you! It’s enough from your side, the issue is more in the assumptions of the functional logic. Thanks again.