2013-01-31 86 views
2

嗨,我有兩個表代理,技能和目標查詢,如下SQL和列名替換單元格的值,避免空值

代理

------------------------------------- 
PF  |Name  |HireDate  | 
---------|-----------|---------------| 
54  |Jack  |01-Jan-2012 | 
55  |Aline  |01-Jan-2012 | 
------------------------------------- 

技能

------------------------------------------------------------- 
PF  |Writing |Swimming  |KickOff |Shopping | 
---------|-----------|---------------|----------------------- 
54  |Null  |01-Dec-2012 |Null  |Null  | 
55  |01-Mar-2012|01-FeB-2012 |Null  |15-Nov-2012| 
------------------------------------------------------------- 

我想查詢從代理商表中選擇PF,從技能表中選擇可用技能。技能表上的日期意味着代理商在這些數據上學到了這項技能,但是如果有空值,這意味着代理商沒有身手,但我想更換日期列名如下表explane什麼是我的查詢

更改爲MyQuery

------------------------------------------------------ 
PF  |HireDate  |Avalivble skills   | 
---------|---------------|----------------------------| 
54  |01-Jan-2012 |Swimming     | 
55  |01-Jan-2012 |Writing, Swimming, Shopping | 
------------------------------------------------------ 
+0

什麼[RDBMS](http://en.wikipedia.org/wiki/Relational_database_management_system)您正在使用? 'SQL Server'? 'MySQL'? 'Oracle'? 'DB2'?等等...... –

+0

M.S.訪問2010 – KaZzA

回答

1
select PF 
,  HireDate 
,  replace(
      iif(Writing is null;'';'Writing, ') + 
      iif(Swimming is null;'';'Swimming, ') + 
      iif(KickOff is null;'';'KickOff, ') + 
      iif(Shopping is null;'';'Shopping, ') + '$'; 
      ', $'; '') 
from Agents a 
join Skills s 
on  s.PF = a.PF 
+0

謝謝,但它的返回錯誤「語法錯誤(缺少運營商)」 – KaZzA

+0

在訪問中,您可以使用'iif',查詢更新 – Andomar

+0

您需要修剪尾隨',' – openshac