mysql - SQL Query 不断返回多行
问题描述
我编写了这个 SQL 查询来获得特定患者的剩余收益,由于患者 ID 是唯一的,因此期望它返回单行,但它不断返回多行。我该如何解决?DBMS 是 MySql
select Plan.pBenefitMax - sum(Transaction.employerTotal) as RemainingBenefit
from Patient
inner join Plan on Patient.pPlanId = Plan.planId
inner join Transaction on Patient.patientId = Transaction.tPatientId
where Patient.patientId = 1
Group by Plan.pBenefitMax;
解决方案
如果这没有得到单行,则您有重复的 PatientId 值或 PatientId 链接到多个计划。
SELECT Plan.pBenefitMax -
(SELECT SUM(`Transaction`.employerTotal)
FROM `Transaction`
WHERE `Transaction`.tPatientId = Patient.patientId)
AS RemainingBenefit
FROM Patient
JOIN Plan ON Patient.pPlanId = Plan.planId
WHERE Patient.patientId = 1;
推荐阅读
- c# - SQL Server / EF:跟踪人员的预期出勤率
- javascript - SharePoint 2013 JSLink OnPostRender 在添加 SP.SOD.executeFunc 后不起作用
- xslt - 寻找 Domino XSL 帮助尝试查找颜色设置为蓝色的字段
- javascript - 在javascript上获取“未捕获的TypeError:无法读取未定义的属性'top'”
- android - 如何在不滚动到第一项的情况下更新嵌套的 RecyclerView
- sql - SQL查询一口气拉出所有数据库表结构?
- javascript - 在没有 .catch 的情况下创建可重用的 Promise
- php - 在通过 php 下载之前为生成的 zip 文件添加注释
- sql - 如何在 PostgreSQL 中实现资产的概念?
- excel - Excel VBA中的多次硬币投掷