2010-08-18 84 views
0

我想生成一個按字母順序排列的名稱列表,將兩列名稱columnA和columnB加在一起生成。如何組合和對列進行排序? 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

更新:

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,以便它進一步列出第二列中的所有名字,然後按字母順序排列這個完整的,更長的名單。 上面的代碼會生成一個新名稱列表,這些名稱是通過將兩個人的姓氏合併在一起而創建的。所以現在我有「Smithstevens」出現,而不是「史密斯」,然後「史蒂文斯」 – 2010-08-19 15:23:08

+0

@霍尼:看到我的更新 – RedFilter 2010-08-19 15:31:34

0

噴氣/ ACE SQL你不能把一凡在現場別名子句或ORDER - 你必須重複表達別名指的是。與此

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中試用它,情況就是這樣。