带别名的SQL查询

时间:2010-05-31 13:06:37

标签: c# sql alias

我有一个包含这些列的表---或者

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

请帮助我...... ????

2 个答案:

答案 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子句中。

(注意:你真的应该发布你的整个查询)