2010-08-20 114 views
2

我下面的表格上執行查詢:訪問數據類型轉換爲Boolean

審批

  • 人(長整型)
  • 項目(長整型)
  • 原因( long int)
  • date(date)
  • valid(bool)

前3個字段鏈接到其他表。每個人在此表中可能有多個條目,用於各種項目,原因或日期。然後我執行以下查詢:

SELECT Approval.person, 
     Approval.item, 
     Approval.reason, 
     Min(Approval.valid) AS valid 
FROM Approval 
GROUP BY Approval.person, 
     Approval.item, 
     Approval.reason; 

爲什麼?因爲我不僅對「有效狀態」感興趣,而且「誰曾對此項目或原因有過批准,並且此批准仍然有效?」

現在,這工作 - 好吧,有點。但是,因爲我已經執行了最小聚合函數,所以我已經自動將數據類型從「是/否」更改爲「數值」(因爲我知道沒有其他更好的方法來執行此操作,所以我使用了最小聚合函數)。

所以,問題是,如何將數字-1 & 0更改爲布爾值True/False?或者,有沒有更好的方法來做這個查詢?

最好的問候, 菲爾

+4

真/假,0/-1是表示層的問題。你不應該在你的SQL中擔心它。 – 2010-08-20 21:02:49

回答

3

功能CBool()將改變數回真或假

+0

嗨。那麼,這就是我的想法 - 但我顯然做錯了什麼(或期望太多),因爲當我用CBool​​(Min(Approval.valid))表達式執行查詢時,我*仍然*沒有得到預期的結果刻度框 - 只是0和-1的數字。 可以這樣做嗎? 我正在使用Office 2003,如果這是相關的。 – 2010-08-20 15:29:23

+0

我不認爲有可能將它更改爲查詢中的複選框,一旦它被更改爲數字,是否有理由說明爲什麼需要查詢中的複選框? – Croberts 2010-08-20 18:47:57

+0

複選框不是一個值 - 這是一個顯示問題,並且查詢確實允許您選擇用於顯示的控件。在字段屬性中,Lookup有第二個選項卡。複選框可能是其中一種選擇,但它並不總是可靠的(這取決於該字段是否被定義爲布爾值)。但這是一個表示層問題,您不應該將保存的QueryDefs用作UI組件。 – 2010-08-21 20:28:55