|
Выборка из результата запроса. Что влияет на количество выборок? | ☑ | ||
---|---|---|---|---|
0
Vyacheslav 777
15.04.15
✎
13:26
|
Здравствуйте. Подскажите. Когда делаю запрос Бывает две выборки бывает одна. С чем это связано. Не могу понять. Готовлюсь к спецу. Как пример : 1я выборка делаю по группировкам по контроля остатков, а вторую ручками пишу для цикла движения не записываются.Постоянно приходится что то изменять или добавлять в выборке. Нужно понять саму суть, что влияет на количество выборок?
|
|||
1
DrShad
15.04.15
✎
13:27
|
а конкретней, ибо ни фига не понятно
|
|||
2
Лефмихалыч
15.04.15
✎
13:28
|
(0) покажи запросы - в которой одна, а в котором две
|
|||
3
DrShad
15.04.15
✎
13:28
|
вот теперь понятно - выборка всегда одна - обход ее разный
|
|||
4
DrShad
15.04.15
✎
13:28
|
прямой или по группировкам
|
|||
5
Vyacheslav 777
15.04.15
✎
13:39
|
Делаю запрос с обработкой. В первый запрос добавляю таб часть. Во второй регистр связываю устанавливаю группировки и если что то в упорядочить то и в итоги закидываю. Кол-сумм из таб части максимум кол и сумм из регистра сумма.
|
|||
6
DrShad
15.04.15
✎
13:40
|
(5) продолжайте в том же духе - спец из вас выйдет отменный
|
|||
7
Vyacheslav 777
15.04.15
✎
13:41
|
Я так понял это сарказм.
|
|||
8
Vyacheslav 777
15.04.15
✎
13:45
|
http://infostart.ru/public/125988/ Вот все про выборки.Если вдруг кто столкнется и не найдет понимание в лице некоторых умников, которые кроме как в 1с себя не где не реализовали.
|
|||
9
ДенисЧ
15.04.15
✎
13:46
|
мда...
Пациент не может внятно выразить свои мысли, но всё-таки жалуется, что его обижают... |
|||
10
1976vas
15.04.15
✎
13:46
|
(8) Ты изъясняешься не ясно, тебе хотели помочь.
|
|||
11
fisher
15.04.15
✎
13:54
|
(8) Если не научишься формулировать свои мысли, сложности с реализацией тоже будут не только в 1С. По ссылке я понял всё. Из (0) - ничего.
|
|||
12
fisher
15.04.15
✎
13:57
|
(5) Проблемы с обходом результата пакетного запроса, что ли?
|
|||
13
Vyacheslav 777
15.04.15
✎
14:16
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура, | СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество, | СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма |ПОМЕСТИТЬ Вт |ИЗ | Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры |ГДЕ | РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура | |ИНДЕКСИРОВАТЬ ПО | Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Вт.Номенклатура КАК Номенклатура, | Вт.Количество КАК Количество, | Вт.Сумма КАК Сумма, | ОстаткиНоменклатурыОстатки.Склад, | ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток |ИЗ | Вт КАК Вт | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки | ПО Вт.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура |ИТОГИ | СУММА(Количество), | СУММА(Сумма), | СУММА(КоличествоОстаток) |ПО | Номенклатура"; Запрос.УстановитьПараметр("Ссылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаНоменклатура.Следующий() Цикл // Вставить обработку выборки ВыборкаНоменклатура ВыборкаДетальныеЗаписи = ВыборкаНоменклатура.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл // Вставить обработку выборки ВыборкаДетальныеЗаписи КонецЦикла; КонецЦикла; |
|||
14
Vyacheslav 777
15.04.15
✎
14:17
|
Быстренько для примера сделал. Вот например если не закидывать в группировки, а в итоги закинуть то получим выборку по номенклатуре и детальные. Например в билете сказано что остатки по всей номенклатуре, а себестоимость по складам.
|
|||
15
Vyacheslav 777
15.04.15
✎
14:21
|
Тогда как получить выборку по всей номенклатуре и как по складам?
ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Склад"); Пока ВыборкаСклад.Следующий() ЦикЕсли применить метод из инфостарта то можноли просто сгруппировав записи получить детальные, а приминив этот метод только по склада? |
|||
16
Vyacheslav 777
15.04.15
✎
14:24
|
Попробую сформировать вопрос. Что влияет на конечные выборки запроса? ИТОГИ? или Группировка тоже или есть еще что и какая разница?
|
|||
17
scanduta
15.04.15
✎
14:34
|
Когда делаешь 2 выборка - это первая выборка по итогам, а вторая по детальным записям
|
|||
18
barrgand
15.04.15
✎
14:50
|
(16) Консоль запросов поможет разобраться в языке запросов, чтобы не возникали вопросы - чем отличаются СГРУППИРОВАТЬ и ИТОГИ.
|
|||
19
fisher
15.04.15
✎
15:35
|
(16) Только ИТОГИ. Новички всегда путаются. Именно ИТОГИ формируют группировки. СГРУППИРОВАТЬ - это банальная свёртка (аналог свертки в таблице значений). Запрос без итогов - формирует плоскую таблицу результата (будущие детальные записи). СГРУППИРОВАТЬ - просто делает свертку этой плоской таблицы. Если рассматривать в рамках иерархического обхода результата по группировкам, то СГРУППИРОВАТЬ влияет только на количество детальных записей.
|
|||
20
Зеленый пень
15.04.15
✎
15:38
|
Кстати, переведи 1С "GROUP BY" как "СВЕРНУТЬ ПО" - вопросов было бы меньше. Но привыкаешь и так быстро.
|
|||
21
fisher
15.04.15
✎
15:41
|
(20) Ну, из-за дословного перевода путаница и возникла. Иерархические группировки в MSSQL появились позже и как производная от GROUP BY - GROUP BY WITH ROLLUP и иже с ними.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |