Перейти к содержимому


Запрос для подготовки данных для отчетов

запрос отчет

Сообщений в теме: 3

#1 userok

    Участник

  • Пользователи
  • PipPip
  • 12 сообщений
  • Пол:Мужчина
  • Город:Москва
  • Интересы:разнообразные

Отправлено 27 Февраль 2013 - 18:58

Подскажите в чем ошибки следующего запроса, который по идее должен формировать список товаров, включенных в счета от заданной даты:
$sqlQuery = "SELECT f1162 FROM ".DATA_TABLE."74 JOIN ".DATA_TABLE."43 ON ".DATA_TABLE."74.f807 = ".DATA_TABLE."43.f839 WHERE ".DATA_TABLE."43.f436>='".form_eng_time($date3." 00:00:00")."';
Этот запрос предполагается для модификации стандартного отчета "Доходы по категориям". Как правильно должен быть написан подобный запрос по двум таблицам для раздела Отчеты-Подготовка данных?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 28 Февраль 2013 - 11:53

Запрос возвращает ошибку SQL или просто неверный результат? По-моему вы связь неверно прописали, поле связи в подтаблице должно быть равно id основной (т.к. в полях связи хранится именно id связанной записи)

#3 userok

    Участник

  • Пользователи
  • PipPip
  • 12 сообщений
  • Пол:Мужчина
  • Город:Москва
  • Интересы:разнообразные

Отправлено 28 Февраль 2013 - 15:51

Выдается ошибка:
Parse error: syntax error, unexpected T_STRING in C:\Program Files\MSTL\ClientBase\www\report.php(12) : eval()'d code on line 50

Соответствующий фрагмент кода выглядит следующим образом
50 $sqlQuery = "SELECT sum(f812) as summa FROM ".DATA_TABLE."74 JOIN ".DATA_TABLE."43 ON f807='".$line['Счет']['id']."'" WHERE ".DATA_TABLE."43.f436>='".form_eng_time($date3." 00:00:00")."'";

Можно описать связь как WHERE f807='".$line['Счет']['id']."'", но как тогда прописать условия с полями из связанной таблицы?
Такое впечатление, что не воспринимается конструкция вида ".DATA_TABLE."43.f436.
Можете написать, как правильно должен прописываться запрос по двум таблицам или привести подобный пример?

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 28 Февраль 2013 - 16:01

Ошибка "syntax error" говорит о банальной синтаксической ошибке в коде (пропустили где-то скобку, кавычку, точку с запятой и т.д.), причем не в запросе SQL, а именно в самом коде вычисления. Конкретно у вас это лишняя кавычка перед WHERE. Это во-первых.

Во-вторых, я вам не говорил про вставку переменной $line в строку запроса, а про замену f839 на id внутри самой строки.





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных