powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / sql - запрос
2 сообщений из 2, страница 1 из 1
sql - запрос
    #39959032
Фотография wsnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
Есть таблицы

1. Таблица справочник цен товаров goods
id - ид поля
cat_id - ид категории
goods_id - ид товара
date_update - дата обновления инфы о товаре
cost - цена на товар

2. Таблица расчетов calc
id - ид поля расчета
name - наименование расчета

3. Таблица расчета товара calc_goods
calc_id - ид расчета FK calc.id
cat_id - ид категории
goods_id - ид товара

Необходимо вывести исходя из таблицы расчетов товаров calc_goods актуальные цена на товар для каждого id_calc (ид расчета).
Товары могут быть с категорией или без категории, в зависимости от этого в справочнике цен товаров каждая строка определяется
либо goods_id (без категории, cat_id = null), либо парой goods_id cat_id (если cat_id <> null).

Делаю таким образом:

select c.name,
       cg.calc_id,
       cg.goods_id,
       t.cost
  from  calc_goods cg
  left join calc c
    on (cg.calc_id = c.id)
  left join (select g.goods_id,
                     decode(g.cat_id, null, '  ', g.cat_id) as cat,
                     max(g.cost) as cost
               from goods g group by g.goods_id, g.cat_id) t
    on cg.goods_id = t.goods_id
   and decode(cg.cat_id, null, '  ',cg.cat_id) = t.cat   


Можно ли как-то оптимизировать данный запрос?
...
Рейтинг: 0 / 0
sql - запрос
    #39959042
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Не надо тут кросспостить, тем более ваш запрос не про MSSQL

https://www.sql.ru/forum/1325475/sql-zapros
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / sql - запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]