Я выполнил запрос, но он выглядит уродливым. И главная проблема, я беспокоюсь, что производительность будет медленной., пожалуйста, помогите обновить этот простой, но уродливый запрос
Это мой стол:
ID ProductCode Qty PYear PMonth
1 A1 4 2015 2
2 A2 5 2015 2
3 A3 2 2014 12
4 A3 16 2015 4
Я хочу, чтобы получить последние категории дат продают по каждому продукту, ниже результат, что я хочу:
ProductCode Qty Year Month
A1 4 2015 2
A2 5 2015 2
A3 16 2015 4
выглядит просто, но мой запрос сложно, я уверен, что для этого нужно простое решение, ниже мой запрос, с которым я работаю, я присоединился год и месяц к 1 колонке:
SELECT A.ProductCode, B.Qty, PDate
FROM (
SELECT MAX(ID) AS purchaseID,
ProductCode,
MAX(CAST(PYear AS VARCHAR(4)) + '-' + CAST(PMonthAS VARCHAR(2)) + '-1') AS PDate
FROM Table1
GROUP BY ProductCode
) AS B
LEFT JOIN Table1 AS B ON A.ID= B.ID
«И основная проблема, я беспокойся производительность будет медленным» Хватит гадать начать профилирование. Все остальное - пустая трата времени. – PeeHaa
Возможный дубликат [Получение последней записи в каждой группе] (http://stackoverflow.com/questions/1313120/retrieving-the-last-record-in-each-group) –
Я также рекомендовал бы сохранить один столбец Date вместо года и месяца в разных колонках. –