Написать SQL для удовлетворения моих требований - PullRequest
0 голосов
/ 28 декабря 2010

Я пытался решить эту проблему в течение многих дней. Но не будет. Пожалуйста, помогите мне.

Мне нужен SQL для перечисления product_code, product_name, qty_sold, last_order_date для всех продуктов, которые были проданы в пределах диапазона дат, отсортированного по количеству проданного количества.

Структура моего стола:

tbl_product (product_id, product_code, product_name)

tbl_order_detail (order_item_id, order_id, product_id, количество)

tbl_order (order_id, ORDER_DATE)

Ответы [ 2 ]

2 голосов
/ 28 декабря 2010

Вы можете использовать group by для расчета статистики по продукту. Затем вы можете использовать sum и max для получения необходимой совокупной информации. Например:

select  p.product_code
,       p.product_name
,       sum(od.quantity) as qty_sold
,       max(o.order_date) as last_order_date
from    tbl_product p
join    tbl_order_detail od
on      p.product_id = od.product_id
join    tbl_order o
on      od.order_id = o.order_id
where   o.order_date between '2010-01-01' and '2010-02-01'
group by
        p.product_code
,       p.product_name
order by
        sum(od.quantity) desc
1 голос
/ 28 декабря 2010
select
    p.product_code, p.product_name, sum(od.quantity) as qty_sold, max(o.order_date) as last_order_date
from tbl_product p join tbl_order o join tbl_order_detail od on
    (p.product_id=o.product_id, o.order_id = od.order_id)
where
    order_date between :first_day: and :last_day:
group by product_code, product_name
order by last_order_date

Извините, я не могу проверить это прямо сейчас.

Ключевые моменты: используйте выражение group by для агрегирования значений количества и даты заказа, а также max и sum, чтобы найти нужные значения.

: first_day: и: last_day: являются местозаполнителями для фактических значений

Надеюсь, я вам помог

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...