我在Yes/No
數據類型(布爾值)的表中有一個名爲DayShift
的列。我想要的結果輸出是:如果值爲true,則顯示「Day」,否則顯示晚上。在Ms Access中使用iif子句來處理「Yes/No」數據類型數據類型
我曾嘗試以下:
SELECT iif(DayShift=Yes,"Day","Night") as Shift FROM table1;
SELECT iif(DayShift,"Day","Night") as Shift FROM table1;
SELECT iif(DayShift=True,"Day","Night") as Shift FROM table1;
SELECT iif(DayShift=1,"Day","Night") as Shift FROM table1;
但沒有上述工作。它只是給出了輸出數據表窗口中空白複選框的列表。我使用Ms Access 2003.任何幫助表示讚賞。
更新:
一點研究的是/否數據類型在MS Access 2003不能適當地處理空值之後。因此,錯誤。 Check this link for details.
更新2
房地產查詢與連接。沒有提到它,因爲我雖然上面提供的信息將工作。
SELECT tblovertime.contfirstname AS [First Name],
tblovertime.contlastname AS [Last Name],
tblovertime.employeenumber AS [Employee Number],
tblsignup.thedate AS [Sign Up Date],
Iif([tblOvertime.DayShift] =- 1, "Day", "Night") AS shift,
(SELECT Mid(MIN(Iif(sector = 1, "," & sector, NULL)) & MIN(
Iif(sector = 2, "," & sector, NULL)) & MIN(
Iif(sector = 3, "," & sector, NULL)) & MIN(
Iif(sector = 4, "," & sector, NULL)), 2) AS concat
FROM tblempsectorlist
WHERE tblempsectorlist.empnum = tblsignup.employeenumber
GROUP BY empnum) AS sectors,
tblovertime.timedatecontact AS [Date Contacted],
tblovertimestatus.name AS status
FROM (tblsignup
INNER JOIN tblovertime
ON (tblsignup.thedate = tblovertime.otdate)
AND (tblsignup.employeenumber = tblovertime.employeenumber))
INNER JOIN tblovertimestatus
ON Clng(tblovertime.statusid) = tblovertimestatus.statusid
WHERE (((tblsignup.thedate) ># 1/1/2011 #))
ORDER BY tblsignup.thedate;
如果列被稱爲'isDayShift',爲什麼使用'DayShift'查詢? – RedFilter 2011-05-30 19:13:32
抱歉...我的專欄是'dayshift'。更新了問題 – reggie 2011-05-30 19:22:23
看起來您的計算字段顯示爲布爾值而不是文本。在您的查詢設計中,打開屬性窗口,然後單擊Shift列。在字段屬性中,單擊查閱選項卡,並將顯示控件屬性設置爲文本框。 – 2011-05-30 19:47:58