Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
How convert SQL to LINQ
SELECT
[good_id]
,MIN([good_price]) as minPrice
,Count([distributor_id]) as distrCount
FROM [Provizor].[dbo].[PRICES] where region_id=22
GROUP BY [good_id]
ORDER BY distrCount desc
How to do this in LINQ grouping
Something like this:
var query = dbo.Prices
.Where(x => x.region_id == 22)
.GroupBy(x => x.good_id)
.Select(g => new
{
minPrice = g.Min(x => x.good_price),
distrCount = g.Count(x=> x.distributor_id!=null)
}
.OrderByDescending(x => x.distrCount);
Related
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 1 year ago.
Improve this question
I can't find how to make this query
SELECT * FROM paquetes
WHERE (
SELECT estatuses.nombre FROM estatus_paquete
INNER JOIN estatuses ON estatuses.id = estatus_paquete.estatus_id
WHERE (estatus_paquete.paquete_id = paquetes.id)
ORDER BY estatus_paquete.created_at DESC LIMIT 1
) = 'En envio'
AND paquetes.deleted_at IS NULL
It's a tricky query, but you can make it line by line with the following syntax.
$query = DB::query()
->select('*')
->from('paquetes')
->where(function ($sub) {
$sub->select('estatuses.nombre')
->from('estatus_paquete')
->join('estatuses', 'estatuses.id', 'estatus_paquete.estatus_id')
->whereColumn(['estatus_paquete.paquete_id', 'paquetes.id'])
->orderByDesc('estatus_paquete.created_at')
->limit(1);
}, 'En envio')
->whereNull('paquetes.deleted_at');
// dump($query->toSql());
$query->get();
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 7 years ago.
Improve this question
Spent about 4 hours trying to figure this out without success.
IQueryable<userTOM> Infolist = userTOMs();
var rbtUserId = Infolist.Where(x => x.UserName == FormsUserName);
userTOMs <-- Does not exist.
Remade the namespace many times but will not appear.
IQueryable does not run immediately on the database. In order to run the query, one has to run functions such as .ToList(), or .Count() on the IQueryable.
Therefore, nothing in your pasted code triggers the database request, and the ID will not be retrieved. I would modify your request to this:
IQueryable<userTOM> Infolist = userTOMs();
userTOM rbtUser = Infolist.FirstOrDefault(x => x.UserName == FormsUserName);
Guid rbtUserId; //assuming this will be populated with a Guid value
if (rbtUser != null) {
rbtUserId = rbtUser.Id; //assuming "ID" is the property name
}
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
I need to filter by a field of type decimal. How Do I?
Here's how I do for string fields:
cartaoCredito.strCartaoCreditoDescricao.ToUpper().Contains(strParam.ToUpper())
Here is my method:
public List<CartaoCredito> GetCartaoCreditoByintCodigoGrupoUsuarioByFiltro(int intCodigoGrupoUsuario, string strParam)
{
return (from cartaoCredito in _DatabaseContext.CartaoCredito
where cartaoCredito.intCodigoGrupoUsuario == intCodigoGrupoUsuario && (cartaoCredito.strCartaoCreditoDescricao.ToUpper().Contains(strParam.ToUpper()))
select cartaoCredito).ToList();
}
I think you're trying to translate a call to string.Contains to a decimal value, which won't work, because decimal does not have a Contains method like string does.
If you have a collection of decimals and you want to see if a value is within that list, do something like:
List<decimal> list = {list of decimals}
var query = {source}.Where(x => list.Contains(x.{decimal property});
or if you just have a single value, you do not need Contains. Just do
decimal decParam = {some value};
var query = {source}.Where(x => x.{decimal property} = decParam);
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
Hello all I want to achieve something like the SQL Select statement with Linq to Sql. Any help will be appreciated.
SELECT SUM(Debit-Credit) AS LBalance FROM dbo.LeaveLedger
WHERE StaffId =1 AND LYEAR='2000'
Assuming Entity Framework:
Context.Table.Where(x => x.StaffId == 1 and x.LYEAR == "2000")
.Sum(y => (y.Debit - y.Credit));
Something like this?
var sum =
db.LeaveLedger
.Where(ll => ll.StaffId == 1 and ll.LYEAR == "2000")
.Sum(ll => (ll.Debit - ll.Credit))
Since Mansfield has already shown the expression syntax, I'll have a go with the classic query:
var LBalance = (from p in dbo.LeaveLedger
where p.StaffId == 1 && p.LYEAR == "2000"
select (p.Debit - p.Credit).Sum();
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
how can i get below result with linq?
key salesID prodname
1 2566 a
2 2566 b
3 3647 c
4 3012 d
result
salesID prodname
2566 b
3647 c
3012 d
i want clear all duplicatesalesIDand i use this code but doesn't work
var n = (from p in context.ArefSms where p.Stautos != true select p).Distinct().OrderBy(x => x.SalesID).ToList();
The simplest approach is probably to use GroupBy:
var result = context.MyTable
.GroupBy(x => x.Field1)
.Select(g => new { Field1 = g.Key,
Field2 = g.First().Field2 });
That might give "a" or it might give "b" for the Field2 value... you haven't made it clear whether or not that's important, or how duplicate values of Field1 should be handled, basically.
EDIT: So with your real properties, I suspect you want:
var query = context.ArefSms
.Where(p => !p.Stautos)
.GroupBy(p => p.SalesID)
.Select(g => new { SalesID = g.Key,
ProdName = g.First().ProdName })
.OrderBy(x => x.SalesID);