2010-05-31 75 views
0

我有此列的表---或者用別名S​​QL查詢

 
orgid ispaid validity  noofthingstoTake 

1  yes 2010-06-05  20 
2  yes 2010-06-09  7 

我已經使用這個查詢(連接兩個表):

select distinct B.RequirementID,A.OrganizationID 
from 
Organization A,RequirementsDetailsforOrganization B,validityorgdet F 
where A.OrganizationID=B.OrganizationID and F.orgid=A.OrganizationID and 
F.ispaid=1 and F.validity>=GETDATE() and 

    F.noofthingstoTake> ?? 

但我不知道如何在這裏檢查(noofthingstaken)。它不應該超過20. im將我的代碼頁面後面的查詢傳遞給Sql。如何讓查詢執行檢查它不應該超過noofthingstaken

請幫助我.... ....

+0

我真的不明白你的問題。我認爲'F.noofthingstoTake <= 20'不是你正在尋找的! – 2010-05-31 13:12:25

回答

0

試試這個

select distinct B.RequirementID,A.OrganizationID from 
Organization A,RequirementsDetailsforOrganization B,validityorgdet F 
where A.OrganizationID=B.OrganizationID and F.orgid=A.OrganizationID and 
F.ispaid=1 and F.validity>=GETDATE() and F.noofthingstoTake <= 20 
+0

不,這20個將取決於表內的數據 – Innova 2010-05-31 13:14:02

+0

對不起,請你解釋一點點我沒有得到你的意思嗎? – Salil 2010-05-31 13:15:31

0

想必noofthingstoTake實際上是一個別名,而不是在你的表中的列名。您不能使用select子句以外的列別名,因爲它們在查詢完成運行之前並不存在。所以,你不能直接比較noofthingstoTake,但必須改爲引用該列的實際字段名稱。如果它是一個表達式,只需使用整個表達式即可。請注意,如果它是一個聚合,您需要將它放在having子句中,而不是where子句。

(注意:你真的應該發佈你的整個查詢)

+0

ithink她已經提到「noofthingstoTake」是她的專欄名稱(我有這張專欄的一張表) – Salil 2010-05-31 13:19:30

+0

我只是把它從問題的標題中提取出來。 – Donnie 2010-05-31 13:58:49