|
Левое соединение таблиц | ☑ | ||
---|---|---|---|---|
0
mcfev
31.05.12
✎
17:13
|
Вопрос такой:
Есть Справочник "Студенты" в котором перечисленны все фамилии. И есть Регистр Накопления "СреднийРейтингГруппы" в котором регистрируется по определенному предмету баллы за занятие только части студентов (не обязательно всех). При выполнении запроса "ВЫБРАТЬ Студенты.Наименование КАК Студент, СреднийРейтингГруппыОстаткиИОбороты.Предмет.Название КАК Предмет, СреднийРейтингГруппыОстаткиИОбороты.БаллыЗаЗанятиеКонечныйОстаток КАК БаллыЗаЗанятие, СреднийРейтингГруппыОстаткиИОбороты.ПропускиКонечныйОстаток КАК Пропуски ИЗ Справочник.Студенты КАК Студенты ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.СреднийРейтингГруппы.ОстаткиИОбороты КАК СреднийРейтингГруппыОстаткиИОбороты ПО Студенты.Наименование = СреднийРейтингГруппыОстаткиИОбороты.Студент.Наименование ГДЕ СреднийРейтингГруппыОстаткиИОбороты.Предмет.Группа = &ПоГруппе" выводятся не все студенты (причем не важно ПОЛНОЕ или ЛЕВОЕ). И попутный вопрос можно ли вместо пустых полей в отчета выводить "0". |
|||
1
Wobland
31.05.12
✎
17:14
|
это ж кто тут у нас такой красивый по наименованию соединяет? ;)
|
|||
2
shuhard
31.05.12
✎
17:14
|
(0)[причем не важно ПОЛНОЕ или ЛЕВОЕ]
дык нужно то ПРАВОЕ можно ЕстьNULL ом |
|||
3
Ненавижу 1С
гуру
31.05.12
✎
17:14
|
за такое
ПО Студенты.Наименование = СреднийРейтингГруппыОстаткиИОбороты.Студент.Наименование надо пороть по ж0пе |
|||
4
salvator
31.05.12
✎
17:15
|
Будь мужиком, соединяй по ссылке, млеять!
|
|||
5
mcfev
31.05.12
✎
17:15
|
ок)))
|
|||
6
Wobland
31.05.12
✎
17:15
|
(4) в справочнике перечислены фамилии. можно ожидать отсутствие ссылочного типа в регистре
|
|||
7
mcfev
31.05.12
✎
17:16
|
поправлю
* не важно ПОЛНОЕ или ЛЕВОЕ или ПРАВОЕ |
|||
8
mcfev
31.05.12
✎
17:16
|
проблема в том что для студентов нет наименования предмета, поэтому и не содиняются таблицы
|
|||
9
alex74
31.05.12
✎
17:17
|
В запрос выводятся ВСЕ записи, удовлетворяющие условию
СреднийРейтингГруппыОстаткиИОбороты.Предмет.Группа = &ПоГруппе" так что все правильно |
|||
10
Murzz
31.05.12
✎
17:18
|
"СреднийРейтингГруппыОстаткиИОбороты.Предмет.Группа = &ПоГруппе" в условие соединения перенеси. И убери нафиг соединение
по наименованию |
|||
11
HEKPOH
31.05.12
✎
17:18
|
(9), (10) +1
|
|||
12
mcfev
31.05.12
✎
17:20
|
(10) это как??
|
|||
13
Ненавижу 1С
гуру
31.05.12
✎
17:21
|
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СреднийРейтингГруппы.ОстаткиИОбороты КАК СреднийРейтингГруппыОстаткиИОбороты
ПО Студенты.Ссылка = СреднийРейтингГруппыОстаткиИОбороты.Студент И СреднийРейтингГруппыОстаткиИОбороты.Предмет.Группа = &ПоГруппе |
|||
14
shuhard
31.05.12
✎
17:21
|
(13) или РегистрНакопления.СреднийРейтингГруппы.ОстаткиИОбороты(Предмет.Группа = &ПоГруппе)
|
|||
15
Ненавижу 1С
гуру
31.05.12
✎
17:22
|
(14) точно
|
|||
16
mcfev
31.05.12
✎
17:25
|
ага, огромное спасибо всем
|
|||
17
mcfev
31.05.12
✎
17:25
|
а как вывести "о" вместо пустых полей
|
|||
18
Wobland
31.05.12
✎
17:26
|
(17) ЕСТЬNULL
|
|||
19
mcfev
31.05.12
✎
17:29
|
ВЫБРАТЬ
Студенты.Наименование КАК Студент, СреднийРейтингГруппыОстаткиИОбороты.Предмет.Название КАК Предмет, ВЫБОР КОГДА СреднийРейтингГруппыОстаткиИОбороты.БаллыЗаЗанятиеКонечныйОстаток ЕСТЬ NULL ТОГДА 0 ИНАЧЕ СреднийРейтингГруппыОстаткиИОбороты.БаллыЗаЗанятиеКонечныйОстаток КОНЕЦ КАК БаллыЗаЗанятие, ВЫБОР КОГДА СреднийРейтингГруппыОстаткиИОбороты.ПропускиКонечныйОстаток ЕСТЬ NULL ТОГДА 0 ИНАЧЕ СреднийРейтингГруппыОстаткиИОбороты.ПропускиКонечныйОстаток КОНЕЦ КАК Пропуски ИЗ Справочник.Студенты КАК Студенты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СреднийРейтингГруппы.ОстаткиИОбороты КАК СреднийРейтингГруппыОстаткиИОбороты ПО Студенты.Ссылка = СреднийРейтингГруппыОстаткиИОбороты.Студент.Ссылка И (Студенты.Группа = &ПоГруппе) вот так не работает (всеравно пустые поля) |
|||
20
del123
31.05.12
✎
17:30
|
ЕСТЬNULL(СреднийРейтингГруппыОстаткиИОбороты.ПропускиКонечныйОстаток, 0)
|
|||
21
del123
31.05.12
✎
17:31
|
вместо выбор
|
|||
22
Wobland
31.05.12
✎
17:32
|
(19) есть ЕСТЬNULL, а есть ЕСТЬ NULL ;)
|
|||
23
mcfev
31.05.12
✎
17:33
|
(22) )) , я знаю
|
|||
24
mcfev
31.05.12
✎
17:36
|
все равно не то
не работеат пустые поля так и остались |
|||
25
salvator
31.05.12
✎
17:38
|
(24) Запрос покажи исправленный
|
|||
26
mcfev
31.05.12
✎
17:38
|
ВЫБРАТЬ
Студенты.Наименование КАК Студент, СреднийРейтингГруппыОстаткиИОбороты.Предмет.Название КАК Предмет, ЕСТЬNULL(СреднийРейтингГруппыОстаткиИОбороты.БаллыЗаЗанятиеКонечныйОстаток, 0) КАК БаллыЗаЗанятие, ЕСТЬNULL(СреднийРейтингГруппыОстаткиИОбороты.БаллыЗаЗанятиеКонечныйОстаток, 0) КАК Пропуски ИЗ Справочник.Студенты КАК Студенты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СреднийРейтингГруппы.ОстаткиИОбороты КАК СреднийРейтингГруппыОстаткиИОбороты ПО (Студенты.Группа = &ПоГруппе) И Студенты.Ссылка = СреднийРейтингГруппыОстаткиИОбороты.Студент.Ссылка И (СреднийРейтингГруппыОстаткиИОбороты.Студент.Группа = &ПоГруппе) ГДЕ Студенты.Группа = &ПоГруппе |
|||
27
salvator
31.05.12
✎
17:40
|
Конструкцию ГДЕ убери.
Ты ее уже написал в условии соединения |
|||
28
mcfev
31.05.12
✎
17:45
|
ок, но при таком запросе
ВЫБРАТЬ Студенты.Наименование КАК Студент, СреднийРейтингГруппыОстаткиИОбороты.Предмет.Название КАК Предмет, ЕСТЬNULL(СреднийРейтингГруппыОстаткиИОбороты.БаллыЗаЗанятиеКонечныйОстаток, 0) КАК БаллыЗаЗанятие, ЕСТЬNULL(СреднийРейтингГруппыОстаткиИОбороты.БаллыЗаЗанятиеКонечныйОстаток, 0) КАК Пропуски ИЗ Справочник.Студенты КАК Студенты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СреднийРейтингГруппы.ОстаткиИОбороты КАК СреднийРейтингГруппыОстаткиИОбороты ПО (Студенты.Группа = &ПоГруппе) И Студенты.Ссылка = СреднийРейтингГруппыОстаткиИОбороты.Студент.Ссылка И (СреднийРейтингГруппыОстаткиИОбороты.Студент.Группа = &ПоГруппе) выводится лишний человек из гругой группы и часть баллов пропадает в отчете + до сих пор нет нулей в пустых полях |
|||
29
mcfev
31.05.12
✎
17:46
|
точнее выводятся ВООБЩЕ все студенты
|
|||
30
quest
31.05.12
✎
17:49
|
||||
31
sergeante
31.05.12
✎
17:50
|
(26) почитай книжки по запросам, же!
|
|||
32
salvator
31.05.12
✎
17:51
|
ВЫБРАТЬ
Студенты.Наименование КАК Студент, СреднийРейтингГруппыОстаткиИОбороты.Предмет.Название КАК Предмет, ЕСТЬNULL(СреднийРейтингГруппыОстаткиИОбороты.БаллыЗаЗанятиеКонечныйОстаток, 0) КАК БаллыЗаЗанятие, ЕСТЬNULL(СреднийРейтингГруппыОстаткиИОбороты.БаллыЗаЗанятиеКонечныйОстаток, 0) КАК Пропуски ИЗ Справочник.Студенты КАК Студенты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СреднийРейтингГруппы.ОстаткиИОбороты КАК СреднийРейтингГруппыОстаткиИОбороты ПО Студенты.Ссылка = СреднийРейтингГруппыОстаткиИОбороты.Студент.Ссылка А условие на группу укажи в параметрах виртуальной таблицы ОстаткиИОбороты |
|||
33
salvator
31.05.12
✎
17:53
|
+(32) А нафига выводить 2 одинаковых поля и по-разному из обзывать?
|
|||
34
mcfev
31.05.12
✎
17:54
|
(33) это случайность, на соамом деле они разные ))
|
|||
35
mcfev
31.05.12
✎
17:59
|
а чем плох ГДЕ, почему надо условия помещаять в ПО??
|
|||
36
mcfev
31.05.12
✎
18:10
|
ОТВЕТТЕ КТОНИТЬ как можно пустые поля заменить на "0"???
|
|||
37
Wobland
31.05.12
✎
18:10
|
(35) патамушта у тебя сначала строится почти нужная таблица, которая "обнуляется" потом твоим ГДЕ. а во втором случае нужная таблица сразу выходит. как-то так
|
|||
38
pessok
31.05.12
✎
18:14
|
пятница?
|
|||
39
unregistered
31.05.12
✎
18:32
|
(36) А чем не устраивает вариант в (36) ?
|
|||
40
mcfev
31.05.12
✎
18:34
|
(39) хотельсь бы 0 увидеть
|
|||
41
unregistered
31.05.12
✎
18:45
|
(40) А функция ЕСТЬNULL тебе что возвращает, по-твоему?
|
|||
42
SnarkHunter
31.05.12
✎
18:50
|
||||
43
Wobland
31.05.12
✎
18:53
|
(41) он знает, см (23)
|
|||
44
mcfev
31.05.12
✎
18:56
|
(41) я знаю что это 0, но его в отчете не видно, вот в чем вопрос
(43) ))))) (42) я не работник, я всего лишь студент который решил написать бакалаврскую (зачем то) на 1С )) |
|||
45
acsent
31.05.12
✎
19:00
|
формат
|
|||
46
mcfev
31.05.12
✎
19:03
|
про 0 я кстати догадываюсь но точно не уверен, "условное оформление" я предпологаю надо испльзовать но вот что да как не совсем понятно
|
|||
47
mcfev
31.05.12
✎
19:03
|
(45) формат чего??
|
|||
48
mcfev
31.05.12
✎
19:04
|
(45) у регистра есть - теперь если пропусков 0 то он так и пишет вместо пустого значения, а все остальные по прежнему пусты
|
|||
49
catena
31.05.12
✎
19:06
|
Та напиши
ЕСТЬNULL(СреднийРейтингГруппыОстаткиИОбороты.БаллыЗаЗанятиеКонечныйОстаток, "0") и фсё |
|||
50
EvgeniuXP
31.05.12
✎
19:11
|
(49) о-о-о ему надо, а не нуль :)
|
|||
51
mcfev
31.05.12
✎
22:57
|
(49) "0" все равно бесполезно
(50) "о" это опечатка ))) |
|||
52
experimentator76
31.05.12
✎
23:05
|
(44) не отмазывайся - потом придешь такой студент чуть-чуть поработать на 1С и планку качества собьешь
|
|||
53
mcfev
31.05.12
✎
23:39
|
(52) я ж учусь токо 1С
|
|||
54
experimentator76
31.05.12
✎
23:41
|
(53) я без злобы
просто тут советовали почитать\поглядеть по запросам методом тыка запросы практически не даются |
|||
55
mcfev
31.05.12
✎
23:43
|
(54) я понимаю что без злобы, я и не обижался ))
а с запросим пока только так получается (методом тыка) хотя я понимю что не так и что происходит а исправить не могу)) |
|||
56
ChAlex
31.05.12
✎
23:46
|
(54) - (гы) весь видео курс Гелиева базируется на метде тыка. Да и как по-иному можно почему енто 1С вдруг ведет себя не так , как написано в двух строчках документации. Ибо мало того, что недосказали, так еще и багов понавтыкали.... Так что без тыка с 1С никак :)
|
|||
57
ChAlex
31.05.12
✎
23:48
|
(55) А собствено где не выводится? В отчете что-ли. Так поставь формат ячейки (вывод пустых значений) и будет тебе счастье
|
|||
58
ChAlex
31.05.12
✎
23:49
|
ЗЫ: в маекете
|
|||
59
mcfev
31.05.12
✎
23:51
|
а что тогда "условное оформление" ???
|
|||
60
ChAlex
31.05.12
✎
23:52
|
а вы собственно в чем делаете? в СКД? Управляемая форма или обычная?
|
|||
61
experimentator76
31.05.12
✎
23:54
|
(56) на курсах от 1С объясняется поведение платформы в некоторых случаях *разводит руками*
но это не отменяет того что лучше взять общепринятые подходы и каноны и их придерживаться кроме того ТС и пришел сюда потому что тыком не получается ) |
|||
62
mcfev
31.05.12
✎
23:54
|
обычная пустая 1С
|
|||
63
ChAlex
31.05.12
✎
23:54
|
Вывод куда? в табличный документ или в табличное поле на форме?
|
|||
64
experimentator76
31.05.12
✎
23:55
|
(62) в мемориз ))
|
|||
65
mcfev
31.05.12
✎
23:55
|
табличный документ
|
|||
66
ChAlex
31.05.12
✎
23:56
|
ну уже хоть что-то. а форма какая? управляемая или нет?
|
|||
67
mcfev
31.05.12
✎
23:58
|
)) нет
ps такие вопросы чет, я даже не могу с ходу ответить (никогда не владел терменологией) |
|||
68
ChAlex
01.06.12
✎
00:00
|
Да какая тут нафиг терминология. Вопрос в интерфейсе, какой режим запуска 1С - управляемая форма или обычная. ибо в разных режимах разные методы
|
|||
69
ChAlex
01.06.12
✎
00:01
|
Короче - если макет сам создаешь, то вот свойства ячейки нужной в макете открой и установи значение свойства формат
|
|||
70
ChAlex
01.06.12
✎
00:03
|
ибо как условным оформлением в табличном поле можно чего-то сделать - ума не приложу, если в макете компановки данных - то тогда это другой вопрос
|
|||
71
mcfev
01.06.12
✎
00:20
|
во.. тогда так объясню, создал отчет, потом "основная схема компановки данных", сделал запрос и впринципе все
|
|||
72
ПульсЪ
01.06.12
✎
00:31
|
Выбор
Когда ПрочиеРасчеты.Сумма = 700 тогда "0" Иначе "Мля" Конец как Сумочка Вот те НОЛЬ )) |
|||
73
ПульсЪ
01.06.12
✎
00:32
|
видимый )
|
|||
74
ПульсЪ
01.06.12
✎
00:34
|
т.е.
Выбор КОГДА СреднийРейтингГруппыОстаткиИОбороты.БаллыЗаЗанятиеКонечныйОстаток = NULL ТОГДА "0" Иначе СреднийРейтингГруппыОстаткиИОбороты.БаллыЗаЗанятиеКонечныйОстаток Конец КАК БаллыЗаЗанятие |
|||
75
mcfev
01.06.12
✎
00:50
|
ща попробую
|
|||
76
rs_trade
01.06.12
✎
00:52
|
(74) КонечныйОстаток = NULL садись. два.
|
|||
77
mcfev
01.06.12
✎
01:03
|
всем спасибо ))
сделал все равно по своему (и главное работает) ВЫБРАТЬ ВложенныйЗапрос.Студент КАК Студент, ВложенныйЗапрос.Предмет КАК Предмет, ЕСТЬNULL(СреднийРейтингГруппыОстаткиИОбороты.БаллыЗаЗанятиеКонечныйОстаток, 0) КАК БаллыЗаЗанятие, ЕСТЬNULL(СреднийРейтингГруппыОстаткиИОбороты.ПропускиКонечныйОстаток, 0) КАК Пропуски ИЗ (ВЫБРАТЬ Предметы.Название КАК Предмет, Студенты.Наименование КАК Студент, Студенты.Группа.Наименование КАК Группа, Предметы.Ссылка КАК СсылкаПред, Студенты.Ссылка КАК СсылкаСтуд ИЗ Справочник.Студенты КАК Студенты ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Предметы КАК Предметы ПО Студенты.Группа.Ссылка = Предметы.Группа.Ссылка ГДЕ Студенты.Группа = &ПоГруппе) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СреднийРейтингГруппы.ОстаткиИОбороты КАК СреднийРейтингГруппыОстаткиИОбороты ПО ВложенныйЗапрос.СсылкаПред = СреднийРейтингГруппыОстаткиИОбороты.Предмет.Ссылка И ВложенныйЗапрос.СсылкаСтуд = СреднийРейтингГруппыОстаткиИОбороты.Студент.Ссылка |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |