0
Ich suche die effizienteste Möglichkeit, dies zu lösen.Resolve GROUP BY SQL effizienter SQL Server AdventureWorks
Ich muss eine Abfrage SQL mit AdventureWorks-Datenbank erstellen. Diese Abfrage SQL müssen die Felder zurückkehren Wie unten
gezeigtdeclare @fecha datetime
set @fecha = GETDATE()-1365
declare @MPid int
set @MPid = 50
select OH.CustomerID, OH.SalesPersonID,
'Month' = Month(OH.OrderDate),
PP.Name,
pp.MakeFlag,
'CantProduct' = SUM(SOD.OrderQty),
'MinUnitPrice' = 0 ,
'MaxUnitPrice' = 0
from sales.SalesOrderHeader OH JOIN sales.SalesOrderDetail SOD ON OH.SalesOrderID = SOD.SalesOrderID
JOIN Production.Product PP ON SOD.ProductID = PP.ProductID
where OH.OrderDate > DATEADD(year,-1,@fecha) and pp.ProductID > @MPid
group by OH.CustomerID, OH.SalesPersonID, Month(OH.OrderDate), PP.Name, pp.MakeFlag
Statt MinUnitPrice und MaxUnitPrice gleich 0 ist, sollte die maximale und minimale Preise erhalten. Kann es gelöst werden, ohne temporäre Tabellen zu verwenden? Oder welche wäre die effizienteste Lösung? Dank
einfach die 'MAX' verwenden und' MIN' Aggregatfunktionen, _exactly_ wie Sie die 'SUM' Aggregatfunktion –
Dank verwendet haben, aber auf diese Weise die Maximal- und Minimalwerte sind immer die gleichen und nicht die, die benötigt werden – Ever
Es gibt keine Erklärung dessen, was Sie eigentlich wollen. _erhalten die Höchst- und Mindestpreise._ min und max von was? Wollen Sie die Höchst-/Mindestpreise für einen Verkäufer? oder eine Verkäufer/Kunden-Kombination? Bitte erklären Sie, was Sie wollen. –