mit der Nordwind-DB, ich muß eine Abfrage machen EmployeeName, Menge Aufträge pro Mitarbeiter und Durchschnittspreis dieser Aufträge bekommenSQL-Abfrage mit C# Northwind DB
das ist, was die Abfrage wie in SQL sieht
SELECT TOP 10
a.LastName, a.FirstName, amountOfOrders = COUNT(DISTINCT b.OrderID), AveragePricePerOrder = SUM(c.Quantity*c.UnitPrice) /COUNT(DISTINCT b.OrderID)
FROM Employees a join orders b on (a.EmployeeID = b.EmployeeID)
join [Order Details] c on b.OrderID = c.OrderID
Group BY a.EmployeeID, a.LastName, a.FirstName
ORDER BY amountOfOrders Desc
dies läuft gut, aber ich muss diese # in c machen, und ich bin ein wenig hängen
Bisher habe ich diese
var query_rx = (from c in ctx.Employees
join or in ctx.Orders on c.EmployeeID equals or.EmployeeID
join ord in ctx.Order_Details on or.OrderID equals ord.OrderID
group c by new
{
c.EmployeeID,
c.LastName,
c.FirstName,
amount = c.Orders.Count
} into c
orderby c.Key.amount descending
select new
{
c.Key.LastName,
c.Key.FirstName,
amountOfOrders = c.Key.amount
}).Take(10);
bekommen haben
„bearbeiten“ Ich habe Probleme, die durchschnittlich in, arbeiten versucht, eine Menge Dinge, aber ich kann es nicht
„bearbeiten“ Ich geändert haben die Abfrage ein wenig mit Hilfe von Dohnal Vorschlag an die Arbeit. Das sieht fast genau wie das, was ich in Bezug auf den Spalten will, außer, dass das Feld Nachname und Vorname ist leer, auch mit ToString
var query_rx = (from or in ctx.Order_Details
join ord in ctx.Orders on or.OrderID equals ord.OrderID
group or by new
{
ord.EmployeeID
} into c
orderby c.Select(x => x.OrderID).Distinct().Count() descending
select new
{
Lastname = (from emp in ctx.Employees
where c.Key.EmployeeID == emp.EmployeeID
select emp.LastName),
Firstname = (from emp in ctx.Employees
where c.Key.EmployeeID == emp.EmployeeID
select emp.FirstName),
c.Key.EmployeeID,
AmountOfOrders = c.Select(x => x.OrderID).Distinct().Count(),
AveragePricePerOrder = c.Sum(x => x.Quantity * x.UnitPrice)/c.Select(x => x.OrderID).Distinct().Count()
}).Take(10);
Ich nehme an Sie haben ein Problem mit diesem Teil 'summeOfOrders = COUNT (DISTINCT b.OrderID), AveragePricePerOrder = SUM (c.Quantity * c.UnitPrice)/COUNT (DISTINCT b.OrderID)'? –
Ja, ich habe viele Dinge ausprobiert, aber ich kann den Durchschnitt nicht in – Sven