Summing and subtracting in Linq to Sql [closed] - linq

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();

Related

How can I make this query in laravel? [closed]

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();

Group By and CASE query in LinQ [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 7 years ago.
Improve this question
How can I write this query in LINQ:
SELECT Name,
READY = max(CASE TrDet.tracktypeid WHEN 7 THEN 1 END),
AVAILABLE = max(CASE TrDet.tracktypeid WHEN 2 THEN 1 WHEN 5 THEN 1 END)
FROM PENDINGAPPROVAL Apr
JOIN TRACKS Tr ON Apr.TrackId = Tr.Id
JOIN TRACK_DETAIL TrDet ON Tr.Id = TrDet.TrackId
GROUP BY Tr.Name
Thanks
This doesn't answer the question you asked, but this gets the answer you want:
var results=context.PENDINGAPPROVAL.Select(p=>new {
Name=p.Name,
READY=p.Tracks.Any(t=>t.TRACK_DETAILS.Any(td=>td.tracktypeid==7))
AVAILABLE=p.Tracks.Any(t=>t.TRACK_DETAILS.Any(td=>td.tracktype==2 || td.tracktype==5))
});

SUPER SIMPLE LINQ to filter row does not work [closed]

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
}

how to use .Contains LINQ in decimal fields [closed]

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);

convert SQL to LINQ group by min, count [closed]

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);

Resources