|
Запрос, и работа только с первыми документами | ☑ | ||
---|---|---|---|---|
0
Грызлик
16.12.14
✎
21:08
|
Суть задачи Получить в запросе отбор по минимальной дате. Столько раз делал. А теперь не могу решить. Есть поступления. От разных контрагентов. И дата отчета. Мне нужно выбрать поступления которые максимально приближены к дате отчета. т.е. окнтрагент-одни документ, а получается контрагент, и все документы до даты отчета. А не один документ. Делаю через вложенный запрос. И в нем все равно выходят все документы до этой даты.. а не только самый последний.
|
|||
1
Windyhead
16.12.14
✎
21:10
|
вложенным отобрать все до даты, отсортировать, верхним запросом выбрать ТОЛЬКО ПЕРВЫЕ
|
|||
2
kosts
16.12.14
✎
21:12
|
Выборку по документам/контрагентам соедини с вложенной выборкой по дата,документ,контрагент. Во внутренней выборке есть группировка по контрагент/документ и минимуму дате. Во внутренней выборке других полей не должно быть.
|
|||
3
Ник второй
16.12.14
✎
21:14
|
(1) Прошу больше никогда не писать такой глупости....
|
|||
4
Ник второй
16.12.14
✎
21:15
|
(2) + Фактически это называется срез первых/последних через запрос
|
|||
5
kosts
16.12.14
✎
21:18
|
(2)+ писал в торопях, возможно во внутренней выборке и поле документа лишнее. Контрагент и дата.
|
|||
6
Грызлик
16.12.14
✎
21:23
|
(2) У меня во вложенном запросе где я делаю группировку по Контрагенту и Минимум(дата документа) все равно отображаются все документы.
|
|||
7
Dionis Sergeevich
16.12.14
✎
21:28
|
имеющие дата = минимум(дата)
|
|||
8
Dionis Sergeevich
16.12.14
✎
21:33
|
или по такому принципу "WHERE date = (SELECT max(date) FROM table)"
|
|||
9
kosts
16.12.14
✎
21:45
|
(6) Ну выложи запрос, может ктонить , чтонить подскажет
|
|||
10
Грызлик
16.12.14
✎
22:18
|
Все. Решил.. Две ошибки были. Указал во вложенном запросе количество и регистратор.
Вот код.. моего решения готового. ВЫБРАТЬ ВложенныйЗапрос.ОбъектКонтрагента, ВложенныйЗапрос.Изделие, ВложенныйЗапрос.ХарактеристикаИзделия, ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос.ХарактеристикаНоменклатуры, ВложенныйЗапрос.ЗаявкаПредполагаемаяДатаОтгурзки КАК ЗаявкаПредполагаемаяДатаОтгурзки, СУММА(ЕСТЬNULL(ЗаявкиНаОтгрузкуОбороты.Количество, 0)) КАК КолМаксимальнойПриближеннойДатыОтгрузки ПОМЕСТИТЬ ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество ИЗ (ВЫБРАТЬ ЗаявкиНаОтгрузкуОбороты.ОбъектКонтрагента КАК ОбъектКонтрагента, ЗаявкиНаОтгрузкуОбороты.Изделие КАК Изделие, ЗаявкиНаОтгрузкуОбороты.ХарактеристикаИзделия КАК ХарактеристикаИзделия, ЗаявкиНаОтгрузкуОбороты.Номенклатура КАК Номенклатура, ЗаявкиНаОтгрузкуОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, МИНИМУМ(ЗаявкиНаОтгрузкуОбороты.Заявка.ПредполагаемаяДатаОтгурзки) КАК ЗаявкаПредполагаемаяДатаОтгурзки ИЗ РегистрСведений.ЗаявкиНаОтгрузкуОбороты КАК ЗаявкиНаОтгрузкуОбороты ГДЕ ЗаявкиНаОтгрузкуОбороты.Заявка.ПредполагаемаяДатаОтгурзки >= &Дата СГРУППИРОВАТЬ ПО ЗаявкиНаОтгрузкуОбороты.ОбъектКонтрагента, ЗаявкиНаОтгрузкуОбороты.Изделие, ЗаявкиНаОтгрузкуОбороты.ХарактеристикаИзделия, ЗаявкиНаОтгрузкуОбороты.Номенклатура, ЗаявкиНаОтгрузкуОбороты.ХарактеристикаНоменклатуры) КАК ВложенныйЗапрос ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗаявкиНаОтгрузкуОбороты КАК ЗаявкиНаОтгрузкуОбороты ПО ВложенныйЗапрос.ОбъектКонтрагента = ЗаявкиНаОтгрузкуОбороты.ОбъектКонтрагента И ВложенныйЗапрос.Изделие = ЗаявкиНаОтгрузкуОбороты.Изделие И ВложенныйЗапрос.ХарактеристикаИзделия = ЗаявкиНаОтгрузкуОбороты.ХарактеристикаИзделия И ВложенныйЗапрос.Номенклатура = ЗаявкиНаОтгрузкуОбороты.Номенклатура И ВложенныйЗапрос.ХарактеристикаНоменклатуры = ЗаявкиНаОтгрузкуОбороты.ХарактеристикаНоменклатуры И ВложенныйЗапрос.ЗаявкаПредполагаемаяДатаОтгурзки = ЗаявкиНаОтгрузкуОбороты.Заявка.ПредполагаемаяДатаОтгурзки СГРУППИРОВАТЬ ПО ВложенныйЗапрос.ОбъектКонтрагента, ВложенныйЗапрос.Изделие, ВложенныйЗапрос.ХарактеристикаИзделия, ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос.ХарактеристикаНоменклатуры, ВложенныйЗапрос.ЗаявкаПредполагаемаяДатаОтгурзки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.ОбъектКонтрагента, ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.Изделие, ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.ХарактеристикаИзделия, ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.Номенклатура, ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.ХарактеристикаНоменклатуры, ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.ЗаявкаПредполагаемаяДатаОтгурзки, МИНИМУМ(ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.КолМаксимальнойПриближеннойДатыОтгрузки) КАК КолМаксимальнойПриближеннойДатыОтгрузки, СУММА(ЕСТЬNULL(ЗаявкиНаОтгрузкуОбороты.Количество, 0)) КАК КолВсего ИЗ ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество КАК ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗаявкиНаОтгрузкуОбороты КАК ЗаявкиНаОтгрузкуОбороты ПО ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.ОбъектКонтрагента = ЗаявкиНаОтгрузкуОбороты.ОбъектКонтрагента И ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.Изделие = ЗаявкиНаОтгрузкуОбороты.Изделие И ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.ХарактеристикаИзделия = ЗаявкиНаОтгрузкуОбороты.ХарактеристикаИзделия И ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.Номенклатура = ЗаявкиНаОтгрузкуОбороты.Номенклатура И ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.ХарактеристикаНоменклатуры = ЗаявкиНаОтгрузкуОбороты.ХарактеристикаНоменклатуры СГРУППИРОВАТЬ ПО ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.Изделие, ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.ХарактеристикаИзделия, ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.ОбъектКонтрагента, ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.Номенклатура, ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.ХарактеристикаНоменклатуры, ВТ_ДатаБлижайшейОтгрузкиСБлижайшимКоличество.ЗаявкаПредполагаемаяДатаОтгурзки |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |