В чём я не прав?
В дизайнере Fast Report Studio 3.21 создаю дизайн отчёта. Источником данных должен быть следующий запрос:
SELECT to_char (operation.paydate, 'DD.MM.YYYY HH:MI:SS')paydate, operation.paysum, card.name, terminal.terminalid, operation.traceno,
operation.authresponse, operation.referenceno, kiosk.name
FROM operation, terminal, kiosk, card
WHERE ( (terminal.code = operation.terminal_code)
AND (kiosk.code = terminal.kiosk_code)
AND (card.code = operation.card_code)
AND (operation.classifier_code = 7)
AND (operation.status = 3)
AND (operation.operday = '30-MAR-2006')
)
В жабе (Toad) запрос отрабатывается правильно и без проблем. Когда в Fast Report Studio 3.21 ставлю источником данных этот запрос получаю пустой отчёт (причём нет ни заголовков страниц ни заголовка данных, пролностью пустая траница и ошибок никаких не выводит). Если урезать запрос до вида:
SELECT to_char (operation.paydate, 'DD.MM.YYYY HH:MI:SS')paydate, operation.paysum, card.name, terminal.terminalid, operation.traceno,
operation.authresponse, operation.referenceno, kiosk.name
FROM operation, terminal, kiosk, card
WHERE ( (terminal.code = operation.terminal_code)
AND (kiosk.code = terminal.kiosk_code)
AND (card.code = operation.card_code)
то отрабатывается всё нормально.
Что происходит ???
Как выйти из сложившейся ситуации?
SELECT to_char (operation.paydate, 'DD.MM.YYYY HH:MI:SS')paydate, operation.paysum, card.name, terminal.terminalid, operation.traceno,
operation.authresponse, operation.referenceno, kiosk.name
FROM operation, terminal, kiosk, card
WHERE ( (terminal.code = operation.terminal_code)
AND (kiosk.code = terminal.kiosk_code)
AND (card.code = operation.card_code)
AND (operation.classifier_code = 7)
AND (operation.status = 3)
AND (operation.operday = '30-MAR-2006')
)
В жабе (Toad) запрос отрабатывается правильно и без проблем. Когда в Fast Report Studio 3.21 ставлю источником данных этот запрос получаю пустой отчёт (причём нет ни заголовков страниц ни заголовка данных, пролностью пустая траница и ошибок никаких не выводит). Если урезать запрос до вида:
SELECT to_char (operation.paydate, 'DD.MM.YYYY HH:MI:SS')paydate, operation.paysum, card.name, terminal.terminalid, operation.traceno,
operation.authresponse, operation.referenceno, kiosk.name
FROM operation, terminal, kiosk, card
WHERE ( (terminal.code = operation.terminal_code)
AND (kiosk.code = terminal.kiosk_code)
AND (card.code = operation.card_code)
то отрабатывается всё нормально.
Что происходит ???
Как выйти из сложившейся ситуации?
Комментарии
SELECT to_char (operation.paydate, 'DD.MM.YYYY HH:MI:SS')paydate, operation.paysum, card.name, terminal.terminalid, operation.traceno,
operation.authresponse, operation.referenceno, kiosk.name
FROM operation, terminal, kiosk, card
WHERE ( (terminal.code = operation.terminal_code)
AND (kiosk.code = terminal.kiosk_code)
AND (card.code = operation.card_code)
AND (operation.classifier_code = 7)
AND (operation.status = 3))
Редактор выдал следующее:
SELECT t1.PostNaSklDate, t1.PostNaSklDocN, t2.InvN, t.TovarName, t2.PostNaSklQuantity, t2.PriceOut
FROM
tblNomenclature t
INNER JOIN tblSpecPostNaSkl t2 ON (t.InvN=t2.InvN) AND (t.IDPostNaSkl=t2.IDPostNaSkl) ,
tblPostavkiNaSklady t1
т.е. вместо двух JOIN выдал только один, а второй JOIN заменил на AND,
причем неправильно, вместо
(t1.IDPostNaSkl=t2.IDPostNaSkl) выдал
(t.IDPostNaSkl=t2.IDPostNaSkl)
что и вызвало ошибку.
Хотелось бы узнать это особенность встроенного редактора
или в ADOQuery больше одного JOIN нельзя использовать.
Я понимаю есть альтернатива с использованием WHERE,
(хотя может и здесь не покатит, не проверял)
но как быть если понадобиться LEFT или RIGHT JOIN.