|
Помогите найти ошибку... | ☑ | ||
---|---|---|---|---|
0
OrenDi
31.07.19
✎
08:00
|
Создал запрос, но пишет: синтаксическая ошибка - ВЫРАЗИТЬ(МАКСИМУМ(ТабЦена.Цена * (100 + &СкидкиНаценки"+Строка(ном)+") / 100) КАК ЧИСЛО(10,0)) КАК Цена,
|ВЫБРАТЬ |ОстаткиТоваровКомпанииОстатки.Номенклатура КАК Номенклатура, |МАКСИМУМ(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток) КАК КоличествоОстаток, |ОстаткиТоваровКомпанииОстатки.Номенклатура.Производитель КАК Производитель, |ОстаткиТоваровКомпанииОстатки.Номенклатура.Артикул КАК Артикул, |"шт" КАК ЕдиницаИзмерения, |ВЫБОР КОГДА ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.Номенклатура.КратностьПоставок,0) >0 ТОГДА |ВЫБОР КОГДА ОстаткиТоваровКомпанииОстатки.КоличествоОстаток / ВЫРАЗИТЬ(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток / ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.Номенклатура.КратностьПоставок,0) КАК ЧИСЛО(10,0)) > 0 |ТОГДА ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.Номенклатура.КратностьПоставок,0) * (ОстаткиТоваровКомпанииОстатки.КоличествоОстаток / ВЫРАЗИТЬ(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток / ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.Номенклатура.КратностьПоставок,0) КАК ЧИСЛО(10,0))) | КОНЕЦ | КОНЕЦ КАК КоличествоОстаток |ВЫРАЗИТЬ(МАКСИМУМ(ТабЦена.Цена * (100 + &СкидкиНаценки"+Строка(ном)+") / 100) КАК ЧИСЛО(10,0)) КАК Цена, |ТабЦена.ТипЦен КАК ТипЦен, |МАКСИМУМ(ТабЦена.Цена) КАК ЦенаЗакупки |{ВЫБРАТЬ |Номенклатура.*, |КоличествоОстаток, |Производитель.*, |Артикул.*, |ЕдиницаИзмерения.*, |Цена, |ТипЦен, |ЦенаЗакупки} |ИЗ |РегистрНакопления.ОстаткиТоваровКомпании.Остатки( |&КонецПериода,Номенклатура В ИЕРАРХИИ (&Номенклатура"+Строка(ном)+") {(СкладКомпании).* КАК СкладКомпании}) КАК ОстаткиТоваровКомпанииОстатки |ЛЕВОЕ СОЕДИНЕНИЕ ТабЦена КАК ТабЦена |ПО ОстаткиТоваровКомпанииОстатки.Номенклатура = ТабЦена.Номенклатура |И ТабЦена.ТипЦен = &ТипЦен"+Строка(ном)+" |И ТабЦена.ПодразделениеКомпании = &ПодразделениеКомпании"+Строка(ном)+" |ГДЕ | ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.Номенклатура.КратностьПоставок,0) < ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток,0) |СГРУППИРОВАТЬ ПО |ОстаткиТоваровКомпанииОстатки.Номенклатура, |ОстаткиТоваровКомпанииОстатки.Номенклатура.Производитель, |ОстаткиТоваровКомпанииОстатки.Номенклатура.Артикул, |ТабЦена.ТипЦен, |ОстаткиТоваровКомпанииОстатки.Номенклатура.БазоваяЕдиницаИзмерения"; |
|||
1
catena
31.07.19
✎
08:06
|
И что там в Строка(ном)?
|
|||
2
catena
31.07.19
✎
08:07
|
"шт" - если хочешь получить строку внутри строки, используй двойные кавычки: ""шт""
|
|||
3
OrenDi
31.07.19
✎
08:10
|
ном =0;
Для Каждого стр ИЗ ТабТовары Цикл ном = ном + 1; Если ном > 1 Тогда ТексЗапроса = ТексЗапроса + " .... .... В самой обработке стоя двойные кавычки, а консоль запросов ругается на них - поэтому убрал |
|||
4
catena
31.07.19
✎
08:11
|
(2)Сколько там этих ном'ов?
|
|||
5
Zmich
31.07.19
✎
08:13
|
(0). Запятая нужна после
|КОНЕЦ КАК КоличествоОстаток |
|||
6
OrenDi
31.07.19
✎
08:14
|
(4) Сколько угодно может быть
|
|||
7
OrenDi
31.07.19
✎
08:15
|
(5)поставил, но теперь - ожидается выражение ) ВЫРАЗИТЬ(МАКСИМУМ(ТабЦена.Цена * (100 + &СкидкиНаценки"+Строка(ном)+") / 100) КАК ЧИСЛО(10,0)) КАК Цена,
|
|||
8
OrenDi
31.07.19
✎
08:16
|
(7) *ожидается выражение Выбрать
|
|||
9
catena
31.07.19
✎
08:24
|
(7)Криво поставил
(6)После 1000 будут сюрпризы |
|||
10
OrenDi
31.07.19
✎
08:26
|
(9)
выпрями) не более 50 |
|||
11
hhhh
31.07.19
✎
08:31
|
(10) поставь МАКСИМУМ(ВЫРАЗИТЬ(
|
|||
12
OrenDi
31.07.19
✎
08:47
|
(11) Так же ошибку выдает
|
|||
13
catena
31.07.19
✎
08:47
|
(10)Мне отсюда не видно, куда поставил
|
|||
14
OrenDi
31.07.19
✎
08:57
|
(13) вот сюда - | КОНЕЦ КАК КоличествоОстаток,
|
|||
15
sqr4
31.07.19
✎
09:24
|
&СкидкиНаценки - мне кажется, тут тоже тип невозможно определить и надо обернуть в выразить
|
|||
16
_Дайвер_
31.07.19
✎
09:54
|
ВЫРАЗИТЬ(МАКСИМУМ(ТабЦена.Цена * (100 + &СкидкиНаценки"+Строка(ном)+") / 100) КАК ЧИСЛО(10,0)) КАК Цена
ты получаешь число + строку и выражаешь как число 10,0 WTF, после КАК пиши СТРОКА() |
|||
17
sqr4
31.07.19
✎
09:56
|
(16) да не смотри внимательнее, там текст запроса так формируется, "+Строка(ном)+", т.е получится +1+
|
|||
18
_Дайвер_
31.07.19
✎
10:04
|
(16) Нда, с преобразованиемми числа в строку есть проблема, на инфостарте видел статью как решали этот вопрос, но там жесть , я бы не стал так делать, через СКД есть вариант преобразования
|
|||
19
sqr4
31.07.19
✎
10:04
|
(18) млин, нет тут преобразования числа в строку
|
|||
20
OrenDi
31.07.19
✎
10:06
|
Еще один момент это запрос работал - нормально. Но потребовалось учитывать кратность - добавил вот эти строки:
|ВЫБОР КОГДА ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.Номенклатура.КратностьПоставок,0) >0 ТОГДА |ВЫБОР КОГДА ОстаткиТоваровКомпанииОстатки.КоличествоОстаток / ВЫРАЗИТЬ(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток / ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.Номенклатура.КратностьПоставок,0) КАК ЧИСЛО(10,0)) > 0 |ТОГДА ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.Номенклатура.КратностьПоставок,0) * (ОстаткиТоваровКомпанииОстатки.КоличествоОстаток / ВЫРАЗИТЬ(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток / ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.Номенклатура.КратностьПоставок,0) КАК ЧИСЛО(10,0))) | КОНЕЦ | КОНЕЦ КАК КоличествоОстаток После и начались ошибки. Что то в них не так (более ни чего не добавлялось). |
|||
21
hhhh
31.07.19
✎
10:08
|
(16) да не, у него числа там
|
|||
22
VS-1976
31.07.19
✎
10:10
|
(20) Круто ВЫРАЗИТЬ(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток / ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.Номенклатура.КратностьПоставок,0)
Тут можно и деление на 0 получить... НУЖНО ДЕЛАТЬ В ТАКИХ СЛУЧАЯХ ПРИМЕРНО ТАК: ВЫБОР КОГДА ОстаткиТоваровКомпанииОстатки.Номенклатура.КратностьПоставок ЕСТЬ NULL ТОГДА ... ИНАЧЕ ВЫРАЗИТЬ(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток / ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.Номенклатура.КратностьПоставок,0) |
|||
23
Йохохо
31.07.19
✎
10:10
|
(20) что курили с утра?
ВЫРАЗИТЬ(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток / ЕСТЬNULL(ОстаткиТоваровКомпанииОстатки.Номенклатура.КратностьПоставок,0) |
|||
24
sqr4
31.07.19
✎
10:11
|
(22) да выше проверка на ноль, вы совсем чтоли не глядите
|
|||
25
sqr4
31.07.19
✎
10:15
|
(20) нет дело именно в той строке и именно в типах которые туда передаются
|
|||
26
bootini
31.07.19
✎
11:38
|
а ежели плюсики из кавычек вынуть?
ВЫРАЗИТЬ(МАКСИМУМ(ТабЦена.Цена * (100 + &СкидкиНаценки + "Строка(ном)") / 100) КАК ЧИСЛО(10,0)) КАК Цена |
|||
27
OrenDi
31.07.19
✎
12:21
|
(26) Тогда пишет - Встроенная функция может быть использована только в выражении. (Строка)
|
|||
28
PiotrLoginov
31.07.19
✎
17:30
|
(27) упрости запрос. форумчане так долго будут с текстом запроса париться. тебе надо оставить только запрос поля, с которым есть проблемы, и добиться его работоспособности. а потом уже добавить остальные поля.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |