计算数字查询结果

时间:2016-10-27 12:33:07

标签: sql oracle

我正在创建一个影院数据库,而且我在插入脚本中遇到了某个问题。 我创建门票,我需要一个总价,这个价格是我使用几个subquerys搜索的两个值的总和。 这是两个查询

Select toelage 
from klanttype
where type = 
        (
        Select type
        from klant
        where klantnr = (
                          Select klantId
                          from Verkoop
                          where verkoopId = 2512
        )
        );

select toelage 
from zetelzone
where zone = (
              select zone
              from zetel
              where zetelnr = 130
);

我现在不停地将两个值相加以创建一个数字以插入Ticket表。

3 个答案:

答案 0 :(得分:1)

尝试使用连接和子查询:

SELECT t.toelage + (SELECT p.toelage
                    FROM zetelzone p
                    JOIN zetel pp 
                     ON p.zone = pp.zone and pp.zetelnr = 130 )
FROM klanttype t
JOIN klant s 
 ON t.kantnr = s.kantid and s.verkoopId = 2512

即如果这些查询返回1条记录。如果子查询返回的不止于此,则需要使用不同的方法,例如另一个连接或关联它。

答案 1 :(得分:1)

你可以结合所有

并与之结合
select sum(toelage) as toelage from (
    Select toelage 
    from klanttype
    where type = 
            (
            Select type
            from klant
            where klantnr = (
                              Select klantId
                              from Verkoop
                              where verkoopId = 2512
            )
            )
    union all
    select toelage 
    from zetelzone
    where zone = (
                  select zone
                  from zetel
                  where zetelnr = 130
    )
) as allSubQuerys

答案 2 :(得分:1)

您可以通过union all来总结这两个查询。 这也很容易扩展到多个源目的地

select sum(toelage)
from (
   Select toelage 
   from klanttype
   where type = 
     (
     Select type
     from klant
     where klantnr = (
                      Select klantId
                      from Verkoop
                      where verkoopId = 2512
     )
     )
   UNION ALL
   select toelage 
   from zetelzone
   where zone = (
          select zone
          from zetel
          where zetelnr = 130
   )
);