В SQL Server у меня есть представление, содержащее 3 связанные таблицы. (Материал, заказ, заказ детали)
Каждый «Order» содержит несколько «OrderDetail» ,, а каждый «OrderDetail» содержит 1 «Material».
Table Material
----------------------------
MaterialID MaterialName
1 egg
2 flour
3 butter
Table Order
----------------------------
OrderID Date
1 2019-1-01
2 2019-12-12
3 2019-6-06
Table OrderDetail
----------------------------
DetailID OrderID MaterialID Price Quantity Total
1 1 1 10 5 50
2 1 2 100 5 500
3 2 2 200 4 800
4 2 3 2000 4 8000
5 3 3 1000 3 3000
6 3 1 20 3 60
Это оригинальный вид, который я создал
View Original
----------------------------
MaterialID OrderID Date Price Total
1 1 2019-1-01 10 50
1 3 2019-6-06 20 60
2 1 2019-1-01 100 500
2 2 2019-12-12 200 800
3 2 2019-12-12 2000 8000
3 3 2019-6-06 1000 3000
Теперь я хочу, чтобы он нашел «Новую цену» (которая связывается с «Последней датой») и «Сумма» (общие деньги, которые я трачу на КАЖДЫЙ материал)
View Edit
----------------------------
MaterialID OrderID LatestDate LatestPrice Sum
1 3 2019-6-06 20 110
2 2 2019-12-12 200 1300
3 2 2019-12-12 2000 11100
Я знаю, как фильтровать каждый столбец по отдельности с помощью Max (Date) Max (Price) Sum (total) Group By, но я все еще незнаком с Subquery, INNER join и другими методами.
Спасибо, что уделили время. Я попытался проиллюстрировать проблему как можно лучше, если требуется дополнительная информация, пожалуйста, спрашивайте в любое время:).