Имя: Пароль:
1C
1С v8
Запрос к внешним источникам данных
0 woha
 
15.07.15
08:08
Доброго дня!

Помогите пожалуйста с запросом:
ВнешниеИсточникиДанных.Exchange_mySQL.УстановитьОбщиеПараметрыСоединения(ПараметрыСоединения);
    ВнешниеИсточникиДанных.Exchange_mySQL.УстановитьСоединение();
    Запрос = Новый Запрос("ВЫБРАТЬ
                          |    reciept.Id КАК Чек,
                          |    reciept.Date КАК Дата,
                          |    reciept_goods.GoodId,
                          |    reciept_goods.Quantity КАК Quantity,
                          |    0 КАК QuantityV
                          |ИЗ
                          |    ВнешнийИсточникДанных.Exchange_mySQL.Таблица.reciept КАК reciept
                          |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Exchange_mySQL.Таблица.reciept_goods КАК reciept_goods
                          |        ПО reciept.Id = reciept_goods.RecieptId
                          |            И reciept.ShopID = reciept_goods.ShopId
                          |ГДЕ
                          |    reciept.sales <> 1
                          |    И reciept.fiscal = 1
                          |    И reciept.Date МЕЖДУ &НачДата И &КонДата
                          |
                          |ОБЪЕДИНИТЬ ВСЕ
                          |
                          |ВЫБРАТЬ
                          |    reciept.Id,
                          |    reciept.Date,
                          |    reciept_goods.GoodId,
                          |    0,
                          |    reciept_goods.Quantity
                          |ИЗ
                          |    ВнешнийИсточникДанных.Exchange_mySQL.Таблица.reciept КАК reciept
                          |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Exchange_mySQL.Таблица.reciept_goods КАК reciept_goods
                          |        ПО reciept.Id = reciept_goods.RecieptId
                          |            И reciept.ShopID = reciept_goods.ShopId
                          |ГДЕ
                          |    reciept.sales = 1
                          |    И reciept.fiscal = 1
                          |    И reciept.Date МЕЖДУ &НачДата И &КонДата
                          |
                          |УПОРЯДОЧИТЬ ПО
                          |    Чек,
                          |    Дата");
Возвращает ошибку:
Ошибка ODBC. SQLSTATE: 42000
Номер ошибки: 1064
Описание: [MySQL][ODBC 3.51 Driver][mysqld-5.5.38-0ubuntu0.14.04.1]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SQL_NUMERIC)}, 3)}
FROM ({oj reciept T1
INNER JOIN reciept_goods T2
ON ((T1.Id' at line 6

Если выполняю только кусок запроса (без объединения) то все нормально, возвращает данные.

Спасибо.
1 Галахад
 
гуру
15.07.15
08:30
Ну убери объединение.

Выбор
reciept.sales <> 1 Тогда reciept_goods.Quantity
Иначе 0 КАК Quantity,

Выбор
reciept.sales = 1 Тогда reciept_goods.Quantity
Иначе 0 КАК QuantityV
2 woha
 
15.07.15
08:42
Спасибо! Помогло.

Правда, когда пробую группировать:
|    СУММА(ВЫБОР
                          |            КОГДА reciept.sales <> 1
                          |                ТОГДА reciept_goods.Quantity
                          |            ИНАЧЕ 0
                          |        КОНЕЦ) КАК Quantity,
                          |    СУММА(ВЫБОР
                          |            КОГДА reciept.sales = 1
                          |                ТОГДА reciept_goods.Quantity
                          |            ИНАЧЕ 0
                          |        КОНЕЦ) КАК QuantityV,

то получаю:
ошибка при выполнении запроса
по причине:
Ошибка ODBC. SQLSTATE: 42000
Номер ошибки: 1064
Описание: [MySQL][ODBC 3.51 Driver][mysqld-5.5.38-0ubuntu0.14.04.1]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SQL_NUMERIC)}, 8)},
{fn ROUND({fn CONVERT(SUM(CASE WHEN (T1.sales = 1) THEN T2.Q' at line 5
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан