我有一个包含这些列的表---或者
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.我将此查询从我的代码页面后面传递给Sql。如何获取查询执行检查它不应超过noofthingstaken
请帮助我...... ????答案 0 :(得分: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
答案 1 :(得分:0)
据推测,noofthingstoTake
实际上是别名,而不是表格中的列名。您不能在select
子句之外使用列别名,因为在查询完成运行之前它们实际上不存在。因此,您无法直接与noofthingstoTake
进行比较,而必须引用该列所来自的实际字段名称。如果它是一个表达式,只需使用整个表达式。请注意,如果它是聚合,则需要将其放在having
子句中,而不是where
子句中。
(注意:你真的应该发布你的整个查询)