Как часть запроса я следующее (я подоконник носить обучаемый знак!) ...Заказывайте проблемы
SELECT
Main.Ax,
Main.Ay,
(select Astr from Afull where Avalid = Main.Ax) as AxStr,
(select Astr from Afull where Avalid = Main.Ay) as AyStr,
Switch(AxStr>=0, AxStr,AxStr<0,0,isnull(AxStr),0)
+ Switch(AyStr>=0, AyStr,AyStr<0,0,isnull(AyStr),0) as AStrTotal
FROM Main
Однако, у меня есть проблема, когда я пытаюсь включить Order By 5 Asc
в том, что он не работает. Я предполагаю, что это имеет какое-то отношение к двум предыдущим подзапросам (тогда AStrTotal добавляет их вместе).
Кроме того, можно ли ссылаться на позиции поля псевдонима (5, выше, для AStrTotal) без использования абсолютного положения?
EDIT: Больше фоне информации ...
Таблица Main (первичная база данных для поиска) содержит 2 поля Ax и Ay
Ax Ay
1 6
5 9
3 3
7
5 5
7 2
2
4 4
3
6 5
7 6
и т.д .... Пустые записи выше являются просто нулевые значения. Значения Ax и Ay могут отображаться в любом поле.
Таблица Afull содержит 2 поля, называемые Avalid и Astr ...
Avalid AStr
1
2
3
4
5
6
7
8
9
поле Astr инициализируется в нуль в начале каждого прогона. Первое использование этой таблицы - сохранить все допустимые значения для Ax и Ay в поле Avalid. Второе использование - это возможность выбора пользователем критерия поиска. Для этого таблица Afull добавляется как подчиненная форма в форме поиска пользователя. Затем пользователь выбирает значение Avalid для поиска, вводя любое значение> 0 в Astr - рядом со значением для поиска. В дальнейшем, значение Astr (переменное число, указывающее прочность) будет использоваться в строке запроса ORDER BY
SQL-затем построен, целью которого является вернуть все записи, несущие любую «перестановку» выбранный пользователем Avalid значения
Я теперь уменьшил первоначальный запрос к ...
SELECT
Main.Ax,
Main.Ay,
(select Astr from Afull where Avalid = Main.Ax) as AxStr
FROM Main
Затем добавляю ...
ORDER BY (select Astr from Afull where Avalid = Main.Ax) ASC;
Но я получаю синтаксическую ошибку в ORDER BY. Удаление скобок не помогает.
Вы должны быть в состоянии 'JOIN' /' ЛЕВЫЙ JOIN' (в зависимости от того, будет ли у вас всегда есть строки или нет) 'Afull', который будет _possibly_ быть более совершенным. 'MAX (...)'/'COALESCE (...)' сделает ваши намерения более очевидными, хотя я сомневаюсь, что это поможет в противном случае. –