2017-04-09 44 views
1

这是我有,它的工作原理,但我也想totalservicesSupp + totalTypeExamen的总和,我似乎无法弄清楚。任何帮助将不胜感激。如何将SQL中的两个子查询的结果加在一起?

SELECT 
    rendezvous.nordv, 
    rendezvous.nopatient, 
    rendezvous.noservicessupp, 
    servicessupplementaires.prix, 
    COUNT(rendezvous.noservicessupp) * servicessupplementaires.prix AS totalservicessupp, 
    rendezvous.notypeexamen, 
    typeexamen.prix, 
    COUNT(rendezvous.notypeexamen) AS notypeexamen, 
    COUNT(rendezvous.notypeexamen) * typeexamen.prix AS totaltypeexamen 
FROM 
    rendezvous 
    FULL JOIN servicessupplementaires ON rendezvous.noservicessupp = servicessupplementaires.noservicessupp 
    FULL JOIN typeexamen ON rendezvous.notypeexamen = typeexamen.notypeexamen 
WHERE 
     rendezvous.noservicessupp >= 1 
    OR 
     rendezvous.notypeexamen >= 1 
GROUP BY 
    nopatient, 
    rendezvous.nopatient, 
    nordv, 
    servicessupplementaires.prix, 
    rendezvous.noservicessupp, 
    rendezvous.nordv, 
    servicessupplementaires.prix, 
    typeexamen.prix, 
    rendezvous.notypeexamen; 

如何获得totalServicesSupp + totalTypeExamen的总数也是??

谢谢大家。编辑/////////////////////还在寻找一些帮助,谢谢****

谢谢,这段代码工作得很好,现在我想要计算一个百分比表示的百分比(0.1为10%或0.2为20%...) (patient.CouvertureAss是存储的地方),所以它在另一个表中。我在实施一个小麻烦

,这里是我的尝试:

SELECT rendezvous.nordv, 
     rendezvous.nopatient, 
     rendezvous.noservicessupp, 
     servicessupplementaires.prix, 
     COUNT(rendezvous.noservicessupp) * servicessupplementaires.prix AS totalservicessupp, 
     rendezvous.notypeexamen, 
     typeexamen.prix, 
     COUNT(rendezvous.notypeexamen) * typeexamen.prix AS totaltypeexamen, 
     COUNT(rendezvous.noservicessupp) * servicessupplementaires.prix + 
      COUNT(rendezvous.notypeexamen) * typeexamen.prix AS grandTotal, 
     COUNT(rendezvous.noservicessupp) * servicessupplementaires.prix + 
      COUNT(rendezvous.notypeexamen) * typeexamen.prix * (1 - patient.CouvertureAss) AS TotalPatient 
FROM rendezvous 
FULL JOIN servicessupplementaires ON rendezvous.noservicessupp = servicessupplementaires.noservicessupp 
FULL JOIN typeexamen ON rendezvous.notypeexamen = typeexamen.notypeexamen 
FULL JOIN patient ON rendezvous.nopatient = patient.nopatient 
WHERE rendezvous.noservicessupp >= 1 
    OR rendezvous.notypeexamen >= 1 
    OR rendezvous.nopatient >= 1 
GROUP BY nopatient, 
     rendezvous.nopatient, 
     nordv, 
     servicessupplementaires.prix, 
     rendezvous.noservicessupp, 
     rendezvous.nordv, 
     servicessupplementaires.prix, 
     typeexamen.prix, 
     rendezvous.notypeexamen, 
     patient.nopatient; 
+0

在上面的代码的GROUP BY中你引用了'nopatient','rendezvous.nopatient','nordv'和'rendezvous.nordv'是每一对之间的区别吗?你有没有测试运行上面的代码? – toonice

+0

请修改您的问题,以指出患者与如此开发的陈述已被使用的表格有何关系。 – toonice

回答

0

请尝试...

SELECT rendezvous.nordv, 
     rendezvous.nopatient, 
     rendezvous.noservicessupp, 
     servicessupplementaires.prix, 
     COUNT(rendezvous.noservicessupp) * servicessupplementaires.prix AS totalservicessupp, 
     rendezvous.notypeexamen, 
     typeexamen.prix, 
     COUNT(rendezvous.notypeexamen), 
     COUNT(rendezvous.notypeexamen) * typeexamen.prix AS totaltypeexamen, 
     COUNT(rendezvous.noservicessupp) * servicessupplementaires.prix + 
      COUNT(rendezvous.notypeexamen) * typeexamen.prix AS grandTotal 
FROM rendezvous 
FULL JOIN servicessupplementaires ON rendezvous.noservicessupp = servicessupplementaires.noservicessupp 
FULL JOIN typeexamen ON rendezvous.notypeexamen = typeexamen.notypeexamen 
WHERE rendezvous.noservicessupp >= 1 
    OR rendezvous.notypeexamen >= 1 
GROUP BY nopatient, 
     rendezvous.nopatient, 
     nordv, 
     servicessupplementaires.prix, 
     rendezvous.noservicessupp, 
     rendezvous.nordv, 
     servicessupplementaires.prix, 
     typeexamen.prix, 
     rendezvous.notypeexamen; 

请注意,在这个水平上,你不能说'totalservicessupp + totalTypeExamen AS grandTotal,但是任何查询指你将能够做到这一点。例如,下面会给你总清单consiting ...

SELECT totalservicessupp + totalTypeExamen AS grandTotal 
FROM 
{ 
    SELECT rendezvous.nordv, 
      rendezvous.nopatient, 
      rendezvous.noservicessupp, 
      servicessupplementaires.prix, 
      COUNT(rendezvous.noservicessupp) * servicessupplementaires.prix AS totalservicessupp, 
      rendezvous.notypeexamen, 
      typeexamen.prix, 
      COUNT(rendezvous.notypeexamen), 
      COUNT(rendezvous.notypeexamen) * typeexamen.prix AS totaltypeexamen 
    FROM rendezvous 
    FULL JOIN servicessupplementaires ON rendezvous.noservicessupp = servicessupplementaires.noservicessupp 
    FULL JOIN typeexamen ON rendezvous.notypeexamen = typeexamen.notypeexamen 
    WHERE rendezvous.noservicessupp >= 1 
     OR rendezvous.notypeexamen >= 1 
    GROUP BY nopatient, 
      rendezvous.nopatient, 
      nordv, 
      servicessupplementaires.prix, 
      rendezvous.noservicessupp, 
      rendezvous.nordv, 
      servicessupplementaires.prix, 
      typeexamen.prix, 
      rendezvous.notypeexamen 
} tempTable; 

如果您有任何问题或意见,然后请随时据此发布评论。

+0

按输入或添加一个新行字符完成评论。 – toonice

+0

另外,你如何计算百分比?即您如何确定应将哪些数字汇总在一起?我们是否将这些数字中有多少数字或者其他相应字段的总和除?请用答案更新您的问题。 – toonice

+0

我用第一个问题的答案更新了问题,但我仍然需要计算总数乘以代表百分比的十进制数并存储在单独的表中。 –

0

把查询你的问题变成一个派生表(用别名的子查询),并添加了两个数字。

select temp.* 
, totalServicesSupp + totalTypeExamen yourSum 
from (
sql from your question) temp 
相关问题