Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
sql запрос поиск ближайшего значения
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. В sql я не очень силен (в основном делаю только линейные выборки, сортировки, группировки), окажите содействие в решении следующей задачи. Есть вьюшка результатом которой мы получаем- дата(формат 20190101 -число), номенклатура (формат число), количество (число), сумма оборот (число) получаем порядка 3 млн строк. Есть другая вьюшка, результат которой- дата (число 20190101), номенклатура (число), себестоимость за единицу (число), порядка 300 тыс строк. Необходимо к первой вьюшке прикрутить себестоимость из 2, по следующему условию - Вьюшка1.Номенклатура = Вьюшка2.Номенклатура И Вьюшка2.Дата<=Вьюшка1.Дата (ищем ближайшее значение себестоимости по номенклатуре и периоду). Пробовал к первой вьюшке делать подзапрос (Select top 1 себестоимость From вьюшка2 where Вьюшка1.Номенклатура = Вьюшка2.Номенклатура И Вьюшка2.Дата<=Вьюшка1.Дата Order by Дата), но это висит просто неимоверно долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2019, 14:43 |
|
||
|
sql запрос поиск ближайшего значения
|
|||
|---|---|---|---|
|
#18+
Кнопка "Сделать фсе быстро и правильно" никак не выйдет из стадии бета-тестирования. Вариантов у тя два 1. Быстрый и неправильный - материализовать View: select * into #t from View/ 2. Небыстрый и правильный - таки выкинуть из вьюшек лишнее и написать их правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2019, 16:10 |
|
||
|
sql запрос поиск ближайшего значения
|
|||
|---|---|---|---|
|
#18+
BatersНеобходимо к первой вьюшке прикрутить себестоимость из 2, по следующему условию - Вьюшка1.Номенклатура = Вьюшка2.Номенклатура И Вьюшка2.Дата<=Вьюшка1.Дата (ищем ближайшее значение себестоимости по номенклатуре и периоду). Пробовал к первой вьюшке делать подзапрос (Select top 1 себестоимость From вьюшка2 where Вьюшка1.Номенклатура = Вьюшка2.Номенклатура И Вьюшка2.Дата<=Вьюшка1.Дата Order by Дата), но это висит просто неимоверно долго. 3. Попробуй через CROSS APPLY - вдруг повезёт. 4. Попробуй переписать запрос - вместо названий вьюшек подставить их определение - иногда это помогает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2019, 16:18 |
|
||
|
sql запрос поиск ближайшего значения
|
|||
|---|---|---|---|
|
#18+
а функция last_Value (MS 2012) может ине подсобить (гуглю, все похожее)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2019, 16:36 |
|
||
|
sql запрос поиск ближайшего значения
|
|||
|---|---|---|---|
|
#18+
Может помочь lead/lag: Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2019, 17:54 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1687875]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
12ms |
get first new msg: |
8ms |
get forum data: |
4ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 253ms |
| total: | 400ms |

| 0 / 0 |
