加入两个查询/分割查询

时间:2017-08-21 17:56:16

标签: sql sql-server sql-server-2008

我想将第一个查询除以第二个查询以获得结果

第一个查询是

select count(*)*100 from event.enrollment e 
inner join event.schedule s on 
 e.ScheduleId=s.ScheduleId 
 where s.EventId=@eventId

和 第二次查询

 select MaxCapacity from [Event].schedule s where  s.eventid=@eventId

2 个答案:

答案 0 :(得分:3)

您可以将值除以:

select count(e.ScheduleId)*100.0 / max(s.MaxCapacity)
from  event.schedule s left join
      event.enrollment e 
      on e.ScheduleId = s.ScheduleId 
where s.EventId = @eventId;

容量的max()只是聚合有效。

count(e.ScheduleId)用于计算注册中匹配行的数量。

100.0是因为SQL Server进行整数除法,这很可能是你想要的。

答案 1 :(得分:1)

没有进一步了解您的数据库和关系 - 但子查询应该仍然有效:

select 
count(*)*100 
/
(select MaxCapacity from [Event].schedule s where  s.eventid=@eventId)
from event.enrollment e 
inner join event.schedule s on 
 e.ScheduleId=s.ScheduleId 
 where s.EventId=@eventId

但您可以使用加入的event.schedule表中的数据。