|
17.01.2007, 16:40 | #1 |
Участник
|
Динамический SQL
Есть вот проблемка.
ТЗ: Сделать отчет - фильтрация по любым полям (то есть юзверь сам выбирает в стандартной форме SysQuery отчета). НО проблемка в том, что сам запрос такой сложный, что с QBDS нельзя его построить, так как фильтрация идет по полям разных таблиц (не-relations)... то есть: Код: where table1.date1 <= table2.date2 Почему мне надо такой сложный JOIN? - потомы что очень много данных и делать Display-методы это равно самоубийству :[ ... >1.000.000 SQL запросов за один отчет - затормаживает сервак :[ Может все-таки есть какой выход? Все что мне хочется: Код: select ... from ... [user_ranges] join ..[user_ranges] [my_ranges] |
|
17.01.2007, 16:46 | #2 |
Участник
|
Цитата:
Используйте поиск по форуму. http://axapta.mazzy.ru/lib/search/ (внизу: используйте скобки) |
|
|
За это сообщение автора поблагодарили: Delfins (2). |
17.01.2007, 16:56 | #3 |
MCTS
|
Сложные можно создать указав Value = '(field1 <= table2.field2)'
скобочки обязательны |
|
17.01.2007, 18:03 | #4 |
Участник
|
Спасибо...
Но теперь проблема с датами - Аxапта не правильно форматирует дату и отсылает на SQL сервер неправельный TS [timestamp] Код: SQL k??das apraksts: [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting datetime from character string. Код: ... (((E.TRANSDATE>={ts '1950-49-49 00:00:00.000'}) AND (E.TRANSDATETO<={ts '1950-49-49 00:00:00.000'})) OR .. Код: tmpRangeValue = strfmt('((table.TransDate >= "%1") && (table.TransDateTo <= "%1"))',systemdateget()); PS: помогло DATE2STRXPP() ... Помоему это надо написать в мануале Последний раз редактировалось Delfins; 17.01.2007 в 18:08. |
|
17.01.2007, 18:15 | #5 |
Участник
|
Читайте мануалы - они рулез.
Не используйте строки вместо дат. Следующая конструкция является категорически неправильной Если хотите задать литерал, используйте конструкцию DD\MM\YYYY (без апострофов и кавычек) Например, 17\01\2007 |
|
17.01.2007, 18:20 | #6 |
Участник
|
Цитата:
Ручное программирование критерия нужно только в том случае, если несколько полей одновременно связаны оператором ИЛИ, или два поля сравниваются друг с другом. Прочтите наконец, документацию. Посетите обучающие курсы. Вам будет намного легче, ей богу. Вы сейчас пытаетесь сделать закат солнца вручную... |
|
|
|