有访问权限的sql请求

时间:2015-11-18 16:57:17

标签: sql ms-access join request

我有两张桌子。

  • CENTER按ID和名称
  • 定义
  • BUILDINGS按ID,PK_CENTER,NbPlace,Type
  • 定义

我想要拥有建筑物的中心的名称:

TYPE equals "flat" and NbPlace => 6 

TYPE equals "Room" and NbPlace => 6.

我被困住了,我不知道怎么去中心。

韩国社交协会

1 个答案:

答案 0 :(得分:1)

可以使用聚合和having子句来回答此类查询。获得中心:

select pk_center
from buildings
group by pk_center
having sum(iif(TYPE = "flat" and NbPlace >= 6, 1, 0)) > 0 and
       sum(iif(TYPE = "Room" and NbPlace >= 6, 1, 0)) > 0;

having子句中的每个表达式都计算与其中一个条件匹配的行数。 > 0表示至少有一场比赛。

注意:我不承认=>。我认为你的意思是>=

编辑:

使用join获取中心名称:

选择c.id,c.name 从中心作为c内连接      建筑物为b      在c.id =,c.pk_center group by c.id,c.name 具有和(iif(TYPE =“flat”和NbPlace> = 6,1,0))> 0和        sum(iif(TYPE =“Room”和NbPlace> = 6,1,0))> 0;