|
Вывести количество записей в запросе | ☑ | ||
---|---|---|---|---|
0
vse_serjezno
19.11.13
✎
13:24
|
Здравствуйте.
Подскажите, пожалуйста, как в таком запросе: Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | НумерацияКодов.НомерОтправления |ИЗ | РегистрСведений.ИПМ_НумерацияКодов КАК НумерацияКодов |ГДЕ | НЕ НумерацияКодов.НомерОтправления В | (ВЫБРАТЬ | ТЧ.НомерОтправления | ИЗ | РегистрСведений.ИПМ_СоответствиеОтгрузокИНомеровПочтовыхОтправлений КАК ТЧ | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ИПМ_ОтгрузкаНаТранспортнуюКомпаниюЗаказыКлиентов.НомерОтправления | ИЗ | Документ.ИПМ_ОтгрузкаНаТранспортнуюКомпанию.ЗаказыКлиентов КАК ИПМ_ОтгрузкаНаТранспортнуюКомпаниюЗаказыКлиентов | ГДЕ | НЕ ИПМ_ОтгрузкаНаТранспортнуюКомпаниюЗаказыКлиентов.Ссылка.ПометкаУдаления) | И (ВЫРАЗИТЬ(НумерацияКодов.НомерОтправления КАК СТРОКА(6))) = &Индекс | И НумерацияКодов.Регистратор.Посылки = &Посылки | |УПОРЯДОЧИТЬ ПО | НумерацияКодов.НомерОтправления"; Вывести количество всех найденных номеров отправления. Попробовала так: "ВЫБРАТЬ ПЕРВЫЕ 1 | НумерацияКодов.НомерОтправления, | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ НумерацияКодов.НомерОтправления) КАК КоличествоНомеров |ИЗ | РегистрСведений.ИПМ_НумерацияКодов КАК НумерацияКодов |ГДЕ | НЕ НумерацияКодов.НомерОтправления В | (ВЫБРАТЬ | ТЧ.НомерОтправления | ИЗ | РегистрСведений.ИПМ_СоответствиеОтгрузокИНомеровПочтовыхОтправлений КАК ТЧ | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ИПМ_ОтгрузкаНаТранспортнуюКомпаниюЗаказыКлиентов.НомерОтправления | ИЗ | Документ.ИПМ_ОтгрузкаНаТранспортнуюКомпанию.ЗаказыКлиентов КАК ИПМ_ОтгрузкаНаТранспортнуюКомпаниюЗаказыКлиентов | ГДЕ | НЕ ИПМ_ОтгрузкаНаТранспортнуюКомпаниюЗаказыКлиентов.Ссылка.ПометкаУдаления) | И (ВЫРАЗИТЬ(НумерацияКодов.НомерОтправления КАК СТРОКА(6))) = &Индекс | И НумерацияКодов.Регистратор.Посылки = &Посылки | |СГРУППИРОВАТЬ ПО | НумерацияКодов.НомерОтправления | |УПОРЯДОЧИТЬ ПО | НумерацияКодов.НомерОтправления"; В количество выводится КОЛИЧЕСТВО ПЕРВЫХ : 1. |
|||
1
Wobland
19.11.13
✎
13:26
|
ну вот и убери первые 1
|
|||
2
Бешеная Нога
19.11.13
✎
13:27
|
выбери первые из ТАБЛИЦЫ и присоедини к ней сверную ТАБЛИЦУ с функцией КОЛИЧЕСТВО
|
|||
3
1dvd
19.11.13
✎
13:27
|
Мне нужно из мешка достать одно яблоко, я достаю. Сколько яблок у меня в руке?
|
|||
4
Max Street
19.11.13
✎
13:31
|
ВыборкаДетальныеЗаписи.Количество()
|
|||
5
Wobland
19.11.13
✎
13:32
|
(3) а сколько яблок у тебя было _до_ операции с мешком?
|
|||
6
1dvd
19.11.13
✎
13:34
|
(5) этого не узнать, не выпотрошив мешок
|
|||
7
vse_serjezno
19.11.13
✎
13:45
|
(4) Так количество будет 1 равно.
|
|||
8
Wobland
19.11.13
✎
13:49
|
может, запрос подправить?
|
|||
9
vse_serjezno
19.11.13
✎
13:53
|
(8) Вопрос как бы так и стоит. Как узнать количество записей, но выбрать из них при этом только одну. Ну или несколько первых, не суть.
|
|||
10
WildSery
19.11.13
✎
13:53
|
ВЫБРАТЬ
МИНИМУМ(НумерацияКодов.НомерОтправления) КАК НомерОтправления, КОЛИЧЕСТВО(НумерацияКодов.НомерОтправления) КАК КоличествоНомеров |
|||
11
WildSery
19.11.13
✎
13:54
|
(10) Группировать ни по чём не надо, только.
А то некоторые теряются, когда нет неагрегатных полей. |
|||
12
vse_serjezno
19.11.13
✎
13:56
|
(10) Минимальное значение для меня не имеет значение.
В запросе может быть выбрана не 1 запись, а сколько понадобится в документе. |
|||
13
Рэйв
19.11.13
✎
13:57
|
(9)Выполнить запрос без Первые N, получить количество строк.
Выполнить его же с Первые N Больше никак. Только нафик тебе эта инфа по количесту строк , я вот не пойму |
|||
14
Рэйв
19.11.13
✎
13:59
|
+(13)Хотя можно еще выполнить без Первые N, а потом при переборе результата отсчитать нужное количество по счетчику и
Прервать; |
|||
15
WildSery
19.11.13
✎
14:00
|
(12) ... а вот тут мы ещё в неё рыбу заворачиваем.
Каков был вопрос, таков и ответ. Новые условия - новая задача. |
|||
16
vse_serjezno
19.11.13
✎
14:01
|
(13) Т.е.сделать тупо 2 запроса? Я думала так, то это костыль какой-то получается, два раза один и тот же запрос выполнять - на производительности плохо скажется...
Мне нужно знать, сколько номеров в РС еще осталось, чтобы при малом остатке запросить новые. |
|||
17
vhl
19.11.13
✎
14:02
|
ВЫБРАТЬ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ НумерацияКодов.НомерОтправления ) КАК КОЛИЧЕСТВО_НомерОтправления |
|||
18
zakidonoff
19.11.13
✎
14:02
|
(16) Запрос на количество много времени не займёт
|
|||
19
vse_serjezno
19.11.13
✎
14:03
|
(15) Реализовано все, кроме вывода количества записей всего.
Я же не спрашиваю, как мне менять количество первых выводимых записей. Я это реализовала уже. |
|||
20
1dvd
19.11.13
✎
14:03
|
Запрос.Текст = "ВЫБРАТЬ
| Количество(НомераОтправления.НомерОтправления) КАК Количество |ИЗ |(ВЫБРАТЬ | НумерацияКодов.НомерОтправления |ИЗ | РегистрСведений.ИПМ_НумерацияКодов КАК НумерацияКодов |ГДЕ | НЕ НумерацияКодов.НомерОтправления В | (ВЫБРАТЬ | ТЧ.НомерОтправления | ИЗ | РегистрСведений.ИПМ_СоответствиеОтгрузокИНомеровПочтовыхОтправлений КАК ТЧ | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ИПМ_ОтгрузкаНаТранспортнуюКомпаниюЗаказыКлиентов.НомерОтправления | ИЗ | Документ.ИПМ_ОтгрузкаНаТранспортнуюКомпанию.ЗаказыКлиентов КАК ИПМ_ОтгрузкаНаТранспортнуюКомпаниюЗаказыКлиентов | ГДЕ | НЕ ИПМ_ОтгрузкаНаТранспортнуюКомпаниюЗаказыКлиентов.Ссылка.ПометкаУдаления) | И (ВЫРАЗИТЬ(НумерацияКодов.НомерОтправления КАК СТРОКА(6))) = &Индекс | И НумерацияКодов.Регистратор.Посылки = &Посылки) КАК НомераОтправления"; |
|||
21
FidelBoom
19.11.13
✎
14:14
|
Вот написал на примере справочника номенклатура
ВЫБРАТЬ КОЛИЧЕСТВО(Номенклатура.Ссылка) КАК Количетство ПОМЕСТИТЬ ВТ ИЗ Справочник.Номенклатура КАК Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПЕРВЫЕ 1 Номенклатура.Ссылка, ВТ.Количетство ИЗ ВТ КАК ВТ ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура ПО (ИСТИНА) ДУМАЮ СМЫСЛ ПОНЯТЕН! |
|||
22
FidelBoom
19.11.13
✎
14:14
|
Результат был следующим - одна строка
Ссылка Количество Телевизор 44 |
|||
23
vhl
19.11.13
✎
14:18
|
(21) так короче будет:
ВЫБРАТЬ Количество(1) ИЗ Справочник.Номенклатура КАК Номенклатура |
|||
24
1dvd
19.11.13
✎
14:19
|
(23) а так ещё короче:
ВЫБРАТЬ 1 |
|||
25
FidelBoom
19.11.13
✎
14:20
|
(23) Согласен.
|
|||
26
vhl
19.11.13
✎
14:21
|
(24) Работает, спасибо! :)
|
|||
27
FidelBoom
19.11.13
✎
14:23
|
(24) (26) Поподробнее можно, я недогнал.
|
|||
28
1dvd
19.11.13
✎
14:25
|
(27) ты скажи зачем соединяешь со справочником номенклатуры во втором запросе?
|
|||
29
FidelBoom
19.11.13
✎
14:28
|
(28) Хз, плохая привычка. спс
|
|||
30
hhhh
19.11.13
✎
15:15
|
(19) зачем при каждом чихе проверять, сколько осталось. Это же всё медленно. Еще больший костыль. Проверяйте раз в месяц регламентным заданием.
|
|||
31
vhl
19.11.13
✎
15:27
|
(30) А еще можно через попытку записывать в регистр, и если не получилось записать - значит уже кончилось. И без всяких проверок :))
|
|||
32
vse_serjezno
19.11.13
✎
15:30
|
(30) Эти номера списывает документ. Если не привязывать проверку к нему, то можно пропустить момент, когда номера закончатся.
Прям как календарь Майя - когда закончатся числа!..;))) |
|||
33
vse_serjezno
19.11.13
✎
15:33
|
(31) Там механизм другой.
Почта выделяет организации диапазон. В программу он заносится документом 1 в РС, списываются номера из этого диапазона другим документом, и этот другой документ может списать 1 номер, а может 150, в зависимости от строк ТЧ. |
|||
34
vse_serjezno
19.11.13
✎
15:54
|
Да, как-то жутко долго получается...
|
|||
35
WildSery
19.11.13
✎
16:55
|
(34) это потому, что Документ.ИПМ_ОтгрузкаНаТранспортнуюКомпанию.ЗаказыКлиентов, Регистратор.Посылки и остальное г-но постоянно подтягивается.
Схема данных ужас-ужас получилась. |
|||
36
zakidonoff
19.11.13
✎
17:35
|
(34) Заведи переменную в регистром сведений, хранящую массив оставшихся номерови повесь на него регистраторами все документы, производящие движения по номерам. Тогда этот гроб в скобочках после слов "НЕ НумерацияКодов.НомерОтправления В" уйдёт в прошлое как страшный сон и останется левое соединение по этому регистру
|
|||
37
vhl
19.11.13
✎
17:51
|
(33) Заведи регистр остатков "ОстаткиНомеров". При выделении Почтой - делай поступления новых номеров, при списании РС - списывай по фифо. Получишь нормальный контроль остатков и всегда сможешь посмотреть какие и сколько номеров свободные 1 простым запросом к 1й таблице.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |