Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MSSMS Подскажите в чем ошибка и что нужно добавить / 11 сообщений из 11, страница 1 из 1
31.10.2020, 10:08
    #40013655
ssell40
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSMS Подскажите в чем ошибка и что нужно добавить
Нужно Определить количество и дату, когда было отпущено минимальное количество товара
Есть tovar(kod_tov,zena,kod_post), rashod(n_rash, data, kol, kod_tov, n_sklad)
postavka(n_post, data, kol, kod_tov, n_sklad), post(kod_post, name)


Примерный код:

Select kol, data
From rashod
where n_sklad in (select n_sklad
from postavka
where n_sklad in (select n_sklad
from rashod
where kol
))
...
Рейтинг: 0 / 0
31.10.2020, 11:13
    #40013663
Dimbuch®
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSMS Подскажите в чем ошибка и что нужно добавить
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT t.kod_tov, rm.data,rm.kol
FROM tovar t
OUTER APPLY (
  SELECT TOP 1
    r.kol, r.data
  FROM rashod r
  WHERE r.kod_tov = t.kod_tov
  ORDER BY r.kol
) rm
...
Рейтинг: 0 / 0
31.10.2020, 19:07
    #40013765
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSMS Подскажите в чем ошибка и что нужно добавить
Dimbuch®
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT t.kod_tov, rm.data,rm.kol
FROM tovar t
OUTER APPLY (
  SELECT TOP 1
    r.kol, r.data
  FROM rashod r
  WHERE r.kod_tov = t.kod_tov
  ORDER BY r.kol
) rm


А если таких дат - несколько?
...
Рейтинг: 0 / 0
31.10.2020, 20:53
    #40013784
Dimbuch®
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSMS Подскажите в чем ошибка и что нужно добавить
А если таких дат - несколько?

Выведет где r.kol наименьший. В задаче ведь так. Вывести дату с наименьшим отпущенным количеством.
...
Рейтинг: 0 / 0
31.10.2020, 21:01
    #40013786
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSMS Подскажите в чем ошибка и что нужно добавить
Dimbuch®,

не поняли...
колво 5 дата 05-06-2020
колво 5 дата 05-07-2020

что вернет Ваш запрос? В rm сколько строк будет?
...
Рейтинг: 0 / 0
31.10.2020, 22:04
    #40013810
godsql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSMS Подскажите в чем ошибка и что нужно добавить
Код: sql
1.
2.
3.
4.
5.
6.
7.
;with t as (
select data, kod_tov, sum ( kol) as sumt from  rashod 
group by data, kod_tov
) 
select t1.data, t1.kod_tov, t1.sumt from t t1
where t1.sumt = (select min(t2.sumt) from t t2 where t1.kod_tov=t2.kod_tov)
order by kod_tov
...
Рейтинг: 0 / 0
31.10.2020, 22:37
    #40013821
Dimbuch®
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSMS Подскажите в чем ошибка и что нужно добавить
Владислав Колосов
Dimbuch®,

не поняли...
колво 5 дата 05-06-2020
колво 5 дата 05-07-2020

что вернет Ваш запрос? В rm сколько строк будет?


Вернёт одну строку с любой из этих дат (зависит от того как будет отсортировано сервером). Если нужно делать выбор точнее - не сложно ведь добавить еще условий и группировок. Я дал ответ на условие задачи. Так уж сформулировали.

Так же в условии не сказано, нужно ли делать группировки по складам. Так же не сказано в условии, нужно ли суммировать расходы по одному товару внутри одного дня (или внутри склада) или за день только одна запись.

Простой вопрос - простой ответ.
...
Рейтинг: 0 / 0
01.11.2020, 00:12
    #40013847
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSMS Подскажите в чем ошибка и что нужно добавить
Dimbuch®,

если условия не уточнены, то общепринято возвращать все строки, удовлетворяющие требованию, а не по своему усмотрению - одну, две или сколько захочу.
...
Рейтинг: 0 / 0
01.11.2020, 03:00
    #40013869
Dimbuch®
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSMS Подскажите в чем ошибка и что нужно добавить
Владислав Колосов
Dimbuch®,

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


Но ведь ssell40 должен же сам что то делать. Попробовать, понять.
Общую концепцию решения дали.

Мы с вами знаем как решать. Естественно это не решение под ключ, а шаблон. Автор уже применит как надо к своим данным.
...
Рейтинг: 0 / 0
01.11.2020, 10:21
    #40013888
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSMS Подскажите в чем ошибка и что нужно добавить
Dimbuch®
Владислав Колосов
Dimbuch®,

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


Но ведь ssell40 должен же сам что то делать. Попробовать, понять.
Общую концепцию решения дали.

Мы с вами знаем как решать. Естественно это не решение под ключ, а шаблон. Автор уже применит как надо к своим данным.

Проблема не в этом.
Проблема в том, что ваше решение - неверное :-)
...
Рейтинг: 0 / 0
01.11.2020, 11:14
    #40013896
Dimbuch®
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSSMS Подскажите в чем ошибка и что нужно добавить
uaggster,

Не вижу сложностей в том, чтобы включить все даты с минимальным количеством.

А у вас-то какой вариант решения?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT rm.kod_tov, rm.data,rm.kol
FROM (
  SELECT 
    DENSE_RANK(r.kol) OVER (PARTITION BY r.kod_tov ORDER BY r.kol) AS rn,
    r.kod_tov,
    r.kol,
    r.data
  FROM rashod r
  WHERE r.kod_tov = t.kod_tov
) rm
WHERE rm.rn = 1
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / MSSMS Подскажите в чем ошибка и что нужно добавить / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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