|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.11.2013, 04:43 | #1 |
Новичок
Джуниор
Регистрация: 14.11.2013
Сообщений: 3
|
Запрос не корректно работает
Здравствуйте! У меня запрос не корректно работает, работает отдельно:
Код:
Код:
Код:
Код:
Полный запрос: Код:
Последний раз редактировалось Stilet; 14.11.2013 в 14:28. |
14.11.2013, 08:07 | #2 |
Форумчанин Подтвердите свой е-майл
Регистрация: 01.12.2006
Сообщений: 514
|
что значит не правильно работает? говорит ошибку (какую) или не то выдает?
какая база/диалект? ну и беглый взгляд показал table3.nameperson <>'%математика%' не верно если только в базе не записано с знаками "%" надо так table3.nameperson like '%математика%' table2.date < '11.11.2013' дату лучше через переменную передавать или хотябе преобразовать к типу date
Пишу на Delphi за еду
|
14.11.2013, 08:46 | #3 | |
Новичок
Джуниор
Регистрация: 14.11.2013
Сообщений: 3
|
Цитата:
|
|
14.11.2013, 09:44 | #4 |
Форумчанин Подтвердите свой е-майл
Регистрация: 01.12.2006
Сообщений: 514
|
если пробелы в начале или конце то поможет trim(' fasgg ')
а для регистра можно поиграться с Upper/Lower
Пишу на Delphi за еду
|
15.11.2013, 03:44 | #5 | |
Новичок
Джуниор
Регистрация: 14.11.2013
Сообщений: 3
|
Цитата:
table1.no, table2.am, table3.NAMEagent, table3.nameperson, table4.namesotr, table5.nameotdel, table2.date FROM rego regin JOIN regFK ON regin.ID=regFK.ID JOIN table1 ON regFK.ID=table1.ID JOIN table4 ON table1.ID=table4.ID JOIN table2 ON table4.ID=table2.ID join table3 on table1.IP_ID=table3.id join table5 on table1.IP_ID=table5.id where trim((' NAMEagent ') or (' nameperson ') or (' namesotr ')) and not ((table3.NAMEagent=table3.nameperso n or table3.nameperson=table4.namesotr or table3.NAMEagent=table4.namesotr)) and (table3.nameperson <>'%математика%' and table4.namesotr<>'%геометрия%') and (table3.nameperson <>'%математика%' and table4.namesotr<>'%геометрия%') and (table3.nameperson <>'%русский язык%' and table4.namesotr<>'% литература%') and (table3.nameperson <>'%литература%' and table4.namesotr<>'%русский язык%') and table2.date >= '08.10.2013' and table2.date < '11.11.2013' пишет ошибка trim((' NAMEagent ') or (' nameperson ') or (' namesotr ')) как написать правильно? |
|
15.11.2013, 08:31 | #6 |
Форумчанин Подтвердите свой е-майл
Регистрация: 01.12.2006
Сообщений: 514
|
trim отсекает пробелы по краям строки
например будет правильно так Код:
Пишу на Delphi за еду
|
15.11.2013, 08:37 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Ну тогда уж лучше в таком духе
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
15.11.2013, 08:41 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
правильно ругается. Вы же бред написали!
TRIM() - это функция, которая ВОЗВРАЩАЕТ переданное в неё параметром строковое выражение без концевых (начальных и конечных) пробелов. я не понимаю, чего Вы в запросе добиваетесь, поэтому не могу подсказать, как Вам лучше написать... в крайнем случае везде, где у Вас в where table3.nameperson замените на TRIM(table3.nameperson), table3.NAMEagent -> TRIM(table3.NAMEagent), table4.namesotr -> TRIM(table4.namesotr) и т.д. p.s. а вообще, мне Ваш запрос КАТЕГОРИЧЕСКИ не нравится - либо кривая структура, либо Вы правой рукой пытаетесь левое ухо почесать... UPDATED увидел пост от Аватар. Согласен с ним! и, если я не ошибаюсь, подстановочные знаки, которые Вы пытаетесь использовать ( %математика%) не работают при использовании операций = или <>, тогда нужно писать LIKE или NOT LIKE ). Но, в данном случае, лучше использовать IN как и предложил Аватар Последний раз редактировалось Serge_Bliznykov; 15.11.2013 в 08:45. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
код работает не корректно | AcTiV | Общие вопросы C/C++ | 4 | 25.12.2012 23:01 |
Запрос к MySQL не работает корректно | Гламурная птица | Помощь студентам | 1 | 01.10.2011 19:43 |
Функция работает не корректно! | VintProg | Общие вопросы Delphi | 8 | 04.08.2011 14:54 |
Программа работает не корректно | Neymexa | Общие вопросы C/C++ | 5 | 24.12.2008 19:17 |