Mysql группа по проблеме? - PullRequest
1 голос
/ 23 октября 2009

Может кто-нибудь помочь мне с этим?

Это моя структура таблицы:

rec_id  product_id  quantity  quantity_in  quantity_out  balance  stock_date  status

   1      2          342          NULL           17        325    2009-10-23     1
   2      2          325          NULL          124        201    2009-10-23     1
   3      1          156          NULL           45        111    2009-10-23     1
   4      2          201          NULL          200          1    2009-10-23     1
   5      2            1          NULL            1          0    2009-10-23     1
   6      1          111          NULL           35         76    2009-10-23     1

Все, что я хочу, это последняя транзакция, выполненная для данного продукта: product_id, quantity, quantity_out и balance из этой таблицы.

Пример. Сделано 2 транзакции для продукта 2 (идентификаторы 1 и 2):
окончательный баланс для product_id 2 равен 0 -> сохраняется в rec_id 5
окончательный баланс для product_id 1 равен 76 -> сохраняется в rec_id 6

Конечный результат / вывод должен быть таким:

recid  productid  quantity  quantityin  quantityout  balance  stock_date  status
  5         2         1       NULL            1         0     2009-10-23    1
  6         1       111       NULL           35        76     2009-10-23    1

Спасибо

Ответы [ 2 ]

0 голосов
/ 18 ноября 2009

Вот один запрос без подзапросов:

SELECT main.*
FROM YourTable main
LEFT JOIN YourTable newer
    ON newer.product_id = main.product_id AND newer.rec_id > main.rec_id
WHERE newer.rec_id IS NULL;

Вы можете настроить список полей по своему усмотрению - убедитесь, что вы выбираете поля из основного, а не нового, который должен быть нулевым.

0 голосов
/ 23 октября 2009

Вы можете найти последнюю запись для каждого продукта, как:

select max(rec_id) as MaxRec
from YourTable
group by product_id

Используя подзапрос, вы можете получить последние строки для их продукта:

select *
from YourTable
where rec_id in (
    select max(rec_id) as MaxRec
    from YourTable
    group by product_id
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...