|
Подскажите с запросом | ☑ | ||
---|---|---|---|---|
0
newbas
15.04.13
✎
18:37
|
Вроде все просто, не не пойму результат
Есть таблица значений: Код:Строка(9), Цена:Число, Характеристика:Строка. Хочу запросом подставить вместо кода ссылку на номенклатуру. ТЗ имеет типизированные колонки. Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.УстановитьПараметр("яТЗ", яТЗ); Запрос.УстановитьПараметр("НаименованиеСвойства", "Размеры"); Состояние("Запрос характеристик и номенклатуры..."); Запрос.Текст = " |ВЫБРАТЬ | ТЗ.Код, | ТЗ.Характеристика, | ТЗ.Цена |ПОМЕСТИТЬ врТЗ |ИЗ | &яТЗ КАК ТЗ |; | |///////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СпрНоменклатура.Ссылка КАК Номенклатура, | врТЗ.Характеристика КАК Характеристика, | врТЗ.Цена КАК Цена, | СпрНоменклатура.ЕдиницаХраненияОстатков |ИЗ | врТЗ КАК врТЗ | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура | ПО (врТЗ.Код = (ВЫРАЗИТЬ(СпрНоменклатура.Код КАК СТРОКА(9)))) |"; мТЗ = Запрос.Выполнить().Выгрузить(); мТЗ.ВыбратьСТроку(); Имею на входе 6600 строк - по идее должен получить 6600 - а получаю более 600 тыс. Почему? |
|||
1
Любопытная
15.04.13
✎
18:40
|
Потому что левое соединение. А ты попробуй внутреннее сделать
|
|||
2
Нуф-Нуф
15.04.13
✎
18:40
|
у тебя длина кода номенклатуры точно 9?
|
|||
3
exwill
15.04.13
✎
18:41
|
(0) А если просто:
ПО врТЗ.Код = СпрНоменклатура.Код чего там выражать? СпрНоменклатура.Код и так строка |
|||
4
МихаилМ
15.04.13
✎
18:43
|
ПОДСТРОКА()
правильней |
|||
5
newbas
15.04.13
✎
18:50
|
(3)
Разные длины. В ТаблицеЗначений код:Строка(9), а СпрНоменклатура.Код:Строка(11) - поэтому выразить. (1) Что значит внутреннее вот тут v8: Язык запросов: Внутреннее и внешнее соединение указано, что это ничего не значит - для соблюдения стиля |
|||
6
newbas
15.04.13
✎
18:52
|
Попробовал вместо ЛЕВОЕ СОЕДИНЕНИЕ
"ВНУТРЕННЕЕ СОЕДИНЕНИЕ" и "СОЕДИНЕНИЕ" результат тот же - размер выборки 598202 |
|||
7
Любопытная
15.04.13
✎
18:52
|
(5) Это моск мой спит уже и несет всякую ересь, не обращайте внимания :)
|
|||
8
exwill
15.04.13
✎
18:57
|
(5) Если у тебя разные длины, чему ты тогда удивляешься?
"123456789"="123456789000" "123456789"="123456789001" "123456789"="123456789002" ... |
|||
9
newbas
15.04.13
✎
18:59
|
Длины разные, но содержимое вот так
"123456789" = "123456789 " |
|||
10
Нуф-Нуф
15.04.13
✎
19:01
|
(5) код:Строка(9), а СпрНоменклатура.Код:Строка(11) именно поэтому при 6000 элементах ты получаешь 600000
|
|||
11
newbas
15.04.13
✎
19:04
|
(10)
Ладно. Вопрос поставлю по другом. Как быть? |
|||
12
exwill
15.04.13
✎
19:04
|
(9) проверь
|
|||
13
exwill
15.04.13
✎
19:08
|
(11) ПОДСТРОКА пробовал?
|
|||
14
newbas
15.04.13
✎
19:09
|
(12) и (*)
Спасибо всем - пора отдыхать. Конечно исходный код оказался длиной 11 - с чего это я его решил обрезать... |
|||
15
exwill
15.04.13
✎
19:09
|
Как вариант, сделай в тз длину 11.
|
|||
16
Любопытная
15.04.13
✎
19:09
|
(11) Открыть получившуюся таблицу, смотреть на результат и много думать о том, почему это происходит
|
|||
17
newbas
15.04.13
✎
19:11
|
(15) именно так и сделал.
Не знаю как в квалификатор колонки код попала 9 вместо 11 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |