2010-08-18 2 views
0

Я хочу создать алфавитный список имен, созданных путем сложения двух столбцов имен, столбца А и столбца.Как объединить и отсортировать столбцы? MySQL, CF8, MS Access 2003

Я попытался это:

<cfquery name="listAuthors" datasource="hhLibrary"> 
SELECT title, (a1_Fname + a2_Fname) AS ColumnA, (a1_Lname + a2_Lname) AS ColumnB 
FROM books 
WHERE ColumnB LIKE '#firstletter#%' 
ORDER BY ColumnB 
</cfquery> 

это код ошибки: Слишком мало параметров. Ожидаемый 1.

любая помощь очень ценится.

oregonHoney

ответ

0

Update:

select * 
from (
    SELECT title, a1_Lname as Name 
    FROM books 
    WHERE a1_Lname LIKE '#firstletter#%' 
    UNION ALL 
    SELECT title, a2_Lname as Name 
    FROM books 
    WHERE a2_Lname LIKE '#firstletter#%' 
) a 
ORDER BY Name 
+0

Я не должен был хорошо описывать проблему ... то, что я хочу сделать, это расширить столбец, то есть a1_Lname, чтобы он также перечислял все имена во втором столбце, THEN в алфавитном порядке заполняет эту длину, дольше список имен. приведенный выше код приводит к списку новых имен, которые были созданы путем объединения фамилий двух человек вместе. Итак, теперь у меня появляется «Smithstevens» вместо «smith», затем «Stevens» –

+0

@Honey: см. Мое обновление – RedFilter

0

В Jet/ACE SQL вы не можете поместить ИНЕКЕ или ORDER BY на имя-псевдоним поля - вы должны повторять выражение: псевдоним имеет в виду. Так, замените это:

SELECT title, (a1_Fname + a2_Fname) AS ColumnA, (a1_Lname + a2_Lname) AS ColumnB 
    FROM books 
    WHERE ColumnB LIKE '#firstletter#%' 
    ORDER BY ColumnB 

... с этим:

SELECT title, (a1_Fname + a2_Fname) AS ColumnA, (a1_Lname + a2_Lname) AS ColumnB 
    FROM books 
    WHERE a1_Lname + a2_Lname LIKE '#firstletter#%' 
    ORDER BY a1_Lname + a2_Lname 

Если у вас установлен доступ, я настоятельно рекомендую вам проверить ваш SQL в интерактивном доступе, в QBE. Вы бы быстро обнаружили, что это так, если вы просто попробовали его в Access.

Смежные вопросы