|
Запрос. Выбрать одну запись из нескольких | ☑ | ||
---|---|---|---|---|
0
poligraf
01.02.16
✎
13:32
|
Упрощу до последнего...
Есть временная таблица в запросе Петя | 1 | 1 | 0 | 0 Петя | 1 | 1 | 0 | 1 Петя | 1 | 0 | 1 | 0 Вася | 1 | 1 | 0 | 0 Женя | 1 | 1 | 0 | 0 Надо выбрать из нее только одну запись (любую) по "Пете" и оставшиеся по "Васе" и "Жене" "Первые 1" - выбирает только первую запись Группировка - свернет, но цифры мне не надо суммировать, количество считать или еще что. |
|||
1
Valerianich
01.02.16
✎
13:40
|
Группировка по Максимум (не по Сумма) например...
|
|||
2
Trotter
01.02.16
✎
13:50
|
Выбрать всё, что есть, а потом в цикле отбросить по условию.
|
|||
3
poligraf
01.02.16
✎
13:52
|
(1) ну и будет Петя | 1 | 1 | 1 | 1
такого не надо (2) цикл это крайний случай. Не хочется его |
|||
4
ViSo76
01.02.16
✎
13:54
|
(0) Если есть в таблице уникальное значение к примеру дата, которое не может повториться, то решаемо иначе нет. Язык запросов в 1С ограничен.
|
|||
5
Trotter
01.02.16
✎
13:54
|
Запрос с параметрами тоже не подходит ?)
|
|||
6
LordCMEPTb
01.02.16
✎
13:55
|
Чтобы в запросе отобрать первую запись по каждому, надо сначала понять, какая из записей первая...
|
|||
7
patapum
01.02.16
✎
13:56
|
(0) как вариант, запрос с итогами, иерархическая выборка, дальше обход по группировке, а из детальных записей брать первую. или тебе надо в таблицу значений / в отчет?
|
|||
8
poligraf
01.02.16
✎
13:57
|
(4) спасибо. Там гораздо больше полей, но уникальное откуда взять нашлось
|
|||
9
f_vadim
01.02.16
✎
14:00
|
пронумеровать строки по каждому пете, выбрать, где номер = 1
|
|||
10
Бледно Золотистый
01.02.16
✎
14:02
|
(9) Нумерация в запросе - затратное дело.
|
|||
11
ViSo76
01.02.16
✎
14:02
|
(9) Это нужно делать перемножение, а это ресурсоёмко.
Если есть уникальное поле можно сгруппировать по имени и взять минимум | максимум по уникальному полю, а далее левым соединением с главной таблицей по полю имя и вычисленное уникальное поле отобрать. |
|||
12
Rlogin
01.02.16
✎
14:04
|
Итоги по Чувакам.
Обход по итогам и только первую запись брать. Затем след. уровень. Все складывать в новую табличку. |
|||
13
f_vadim
01.02.16
✎
14:05
|
(10) на счёт затрат условий не было. была только хотелка "шоб в запросе"
(11) скучно :) |
|||
14
ViSo76
01.02.16
✎
14:05
|
(11) Этот метод применяется если нужно получить цены для некоторого количества документов за разные даты в "одном" запросе.
|
|||
15
assasu
01.02.16
✎
14:05
|
(0) задачка из области "..тут учет у нас, а тут мы рыбу заворачиваем.."
|
|||
16
ViSo76
01.02.16
✎
14:06
|
(13) А ты что хочешь чтобы бухгалтера / менеджеры были вытеснены в фоновые процессы на сервере?
|
|||
17
cw014
01.02.16
✎
14:08
|
Я один не понимаю смысл этой задачи?
|
|||
18
poligraf
01.02.16
✎
14:08
|
(12) это все семерошный подход и г$%#окод, как ни крути
(13) уникальное условие нашлось. Номер строки. Табличка образований по физлицам. Просто надо взять последнее, с одной стороны год, но может быть и в один год два образования, тут уже любое берем. (15) Это кадровый учет, свои заморочки |
|||
19
cw014
01.02.16
✎
14:08
|
>Надо выбрать из нее только одну запись (любую) по "Пете"
|
|||
20
cw014
01.02.16
✎
14:09
|
ЛЮБУЮ, КАРЛ! Если любая запись - почему тебе сумма не канает? Тоже какбэ "любая"
|
|||
21
f_vadim
01.02.16
✎
14:09
|
(16) ой, ну ладно придумывать. задача "сферическая", решение такое же.
там может в таблице 10 записей |
|||
22
Timon1405
01.02.16
✎
14:09
|
(17) Петя мухлюет с продажами, надо все равно брать по нему только одну
|
|||
23
ViSo76
01.02.16
✎
14:09
|
(17) Можешь считать себя уникальным
|
|||
24
f_vadim
01.02.16
✎
14:10
|
(20) вроде как любая запись, а не любые цифры
|
|||
25
kosts
01.02.16
✎
14:12
|
(0)
в ВТ (или подзапрос) поместить таблицу ФИО, Макс(к1 + к2*10 + к3*100 + к4*100) как Вес в конечном запросе соединение по условию ВТ.Вес = к1 + к2*10 + к3*100 + к4*100 |
|||
26
Rlogin
01.02.16
✎
14:12
|
(18) Не знаю как, но не так.
|
|||
27
poligraf
01.02.16
✎
14:13
|
(20) "ЛЮБУЮ, КАРЛ!"
Сумма полей это уже совсем другая запись. Ты только на "Петя" возбудился, а остальные поля не видишь и смысла термина "Запись" не понимаешь |
|||
28
ViSo76
01.02.16
✎
14:13
|
(25) Дата + Строка + Число + Ссылка ты будешь складывать? Вот это поворот...
|
|||
29
kosts
01.02.16
✎
14:16
|
(28) Дату можно в число преобразовать. У строки можно минимум длину узнать (правда громоздко).
|
|||
30
kosts
01.02.16
✎
14:18
|
Проще в исходные данные добавить уникальность
|
|||
31
ViSo76
01.02.16
✎
14:23
|
(30) Хорошо ссылку во что лепить будешь?
|
|||
32
patapum
01.02.16
✎
14:25
|
(30), (31) можно соединять по:
ВЫБОР КОГДА Вт1.Поле1 <> Вт2.Поле1 Тогда Вт1.Поле1 < Вт2.Поле1 КОГДА Вт1.Поле2 <> Вт2.Поле2 Тогда Вт1.Поле2 < Вт2.Поле2 ... КОНЕЦ |
|||
33
ViSo76
01.02.16
✎
14:27
|
(32) Очередной борец с ветричками?
|
|||
34
kosts
01.02.16
✎
14:28
|
Можно попробовать последовательно сделать несколько запросов, в каждом находить МАКС только по одной колонке.
И затем отсекая лишние записи в соединении с этой же таблицей. Таким образом для данного случая применим 4-ре раза. |
|||
35
ViSo76
01.02.16
✎
14:31
|
(34) Ты хоть сам понял что написал? Чем больше ты пишешь тем смешнее выглядишь.
|
|||
36
kosts
01.02.16
✎
14:33
|
(35) Кому надо будет поймет.
|
|||
37
HardBall
01.02.16
✎
14:37
|
Пост в топку.
Автору учить 2НФ |
|||
38
kosts
01.02.16
✎
14:50
|
|
|||
39
kosts
01.02.16
✎
14:54
|
(38) Может и не поможет. Для интереса попробовал. Пока пять минут отчет формировался...
|
|||
40
HardBall
01.02.16
✎
14:58
|
(38) А если значения Kn В(0,1,2,3...n)
|
|||
41
kosts
01.02.16
✎
14:59
|
(40) Это уже теория. У ТС 4-ре колонки.
|
|||
42
ViSo76
01.02.16
✎
15:00
|
(41) Не нужно сверлить зубы через задний проход.
|
|||
43
kosts
01.02.16
✎
15:04
|
(42) Мне то зачем это говорить. Я порешал конкретную задачу. Все претензии к ТС.
|
|||
44
ViSo76
01.02.16
✎
15:11
|
(43) Нужно уметь контактировать с заказчиком. Они пишут одно, а на самом деле всё выходит не совсем так. Я подсказал решение в 4-том посте. Твоё решение это натягивание совы на глобус, так сказать сферический конь в вакууме.
|
|||
45
kosts
01.02.16
✎
15:21
|
(44) Возможно. Однако ТС поставил именно такую задачу. Ему предложили разное, а он там себе уже порешает.
Может у него базу нельзя менять. Было у меня и такое. Долго работали с одной распределенной базой, в которую запрещено было вносить изменения. Тут и не так еще вывернешься... |
|||
46
rs_trade
01.02.16
✎
15:24
|
если надо любую, чем первые 1 не устраивает? она и выбирает любую одну запись.
|
|||
47
ViSo76
01.02.16
✎
15:28
|
(46) Тем что она и вернёт одну запись, а не по одной записи для каждой фамилии.
|
|||
48
poligraf
01.02.16
✎
17:49
|
(41) решение было в (4) с чем я согласился, тут же флуд развели:)
На самом деле там 11 колонок:) Идет разбивка образования на виды (финансовое, физмат, сельское хозяйство и т.д.). Формы статистики это жуть |
|||
49
kosts
01.02.16
✎
18:17
|
(48) Запишу себе в блокнот - Полиграф полиграфычу не помогать.
|
|||
50
ViSo76
01.02.16
✎
19:16
|
(49) Расслабся, всё хорошо, лучше посмотри "Ходячий замок Хаула"
|
|||
51
Ildarovich
10.02.16
✎
23:40
|
Есть ГОРАЗДО БОЛЕЕ ПРОСТОЕ и БОЛЕЕ УНИВЕРСАЛЬНОЕ решение. Оно заключается в использовании коррелированного запроса:
ВЫБРАТЬ Ф, К1, К2, К3, К4
На 8.3 точно работает! |
|||
52
cw014
11.02.16
✎
07:13
|
Давно надо сделать в 1С в конструкции запроса "ВЫБРАТЬ ЛЮБУЮ..."
|
|||
53
НЕА123
11.02.16
✎
07:49
|
(0)
ОБЪЕДИНИТЬ чем не подходит? |
|||
54
kosts
11.02.16
✎
21:26
|
(51) Возможно во внутреннем запросе надо сделать сортировку
|
|||
55
MANlAK
25.02.16
✎
16:47
|
(51) на 8.2 не работает, выдает первичный вариант
|
|||
56
aleks_default
25.02.16
✎
17:11
|
"ИЗ Дано КАК ВСЁ ГДЕ ВСЁ.Ф = Дано.Ф" - а это что?
|
|||
57
aleks_default
25.02.16
✎
17:18
|
(56)А че так можно было?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |