Синтаксическая ошибка, нужна помощь

speckau

Пользователь
Регистрация
24.06.12
Сообщения
2
Реакции
0
Баллы
1
Всем добрый день
Спасибо, что попытались помочь в первую очередь.

Мой вопрос о том;

Я пытаюсь написать запрос sql, который выполнит следующее
1. Когда пользователь вводит определенный код терминала, sql возвращает результаты для этого терминала.
2. Когда пользователь вводит код терминала с маской CN, запрос sql возвращает все терминалы, у которых есть CN в начале этого терминала.
Синтаксическая ошибка, нужна помощь
Я знаю, что, вероятно, здесь придется использовать CASE

Пока что я получил,
Код:
 SELECT sm.terminalid as terminalcode, sm.sums as Latest_sums
from sums1 sm CASE WHEN sm.terminalid = : p_terminal THEN sm.sums = (SELECT max(ss.sums) from sums ss WHERE ss.terminalid = : p_terminal)
WHEN sm.terminalid = : p_terminal AND : p_terminal LIKE 'CN%' THEN sm.sums = (SELECT sm1.sums FROM sums1 sm1 WHERE sm1.terminalid = : p_terminal AND : p_terminal LIKE 'CN%') ELSE 'Incorrect Terminal ID' END
Код (разметка): Может ли кто-нибудь помочь мне, где я ошибаюсь, поскольку выбор не возвращает несколько результатов при вводе CN.

заранее спасибо
 

Mantra

Пользователь
Регистрация
02.05.13
Сообщения
10
Реакции
0
Баллы
1
для начала проверьте свой запрос напрямую, используя phpmyadmin, teamsql и т. д. (я большой поклонник sqlyog)

Если это так сложно, как этот, создайте образец данных в скрипте MySQL и поделитесь ссылкой. Это немного больше работы с вашей стороны, но поможет нам помочь вам.

Я часто использую операторы case, но не использовал имеющийся у вас синтаксис, поэтому нужно это проверить. И я предполагаю, что этот код — это всего лишь те фрагменты, над которыми вы работаете, потому что порядок неправильный и т. д.

Что должны показывать выходные данные?
 
Сверху Снизу