Mysql 如何组合这两个select语句
我想把这两种说法结合起来,但似乎做不好 我需要总共3列。一个用于合计、月份和损失 这是我到目前为止所拥有的Mysql 如何组合这两个select语句,mysql,Mysql,我想把这两种说法结合起来,但似乎做不好 我需要总共3列。一个用于合计、月份和损失 这是我到目前为止所拥有的 SELECT Count(patient1.patient_id) AS total FROM patient AS total; SELECT Count(patient2.patient_id) AS losses, patient2.mo AS `month` FROM patient AS patient2 WHERE patient1.rx_exp BETWEEN '2010-1
SELECT Count(patient1.patient_id) AS total FROM patient AS total;
SELECT Count(patient2.patient_id) AS losses, patient2.mo AS `month`
FROM patient AS patient2
WHERE patient1.rx_exp BETWEEN '2010-10-01' AND '2010-11-01';
编辑我需要将所有三列放在一行上。选择
SELECT
Count(patient_id) AS total,
Count(case when rx_exp >= '2010-10-01'
AND rx_exp < '2010-11-01' then 1 end) AS losses,
'October' AS `month`
FROM patient;
将(患者id)计入总数,
计数(rx_exp>='2010-10-01'时的情况)
和rx_exp<'2010-11-01'然后1结束)作为损失,
“十月”作为“月份”`
来自患者;
你可以用这个月,但可能没有意义
MAX(case when rx_exp >= '2010-10-01'
AND rx_exp < '2010-11-01' then patient2.mo end) AS `month`
MAX(rx\u exp>='2010-10-01'时的情况)
和rx_exp<'2010-11-01'然后patient2.mo结束)作为'month`
您的第一个查询没有日期限制。这就是你想要的吗?所以你会把所有时间的病人总数和每月的数据混在一起?我想展示的是对病人未来一个月的损失的预测。我想向他们显示患者总数,然后计算第二个select查询中的损失。如果PATIENT.mo
的值表示月份,为什么要检查PATIENT.rx\u exp
?您的查询给出了正确的总数。谢谢你,马丁!Martin,“1”在stmt的情况下做什么?COUNT
返回传递给它的非空值的数目。如果一行在您的目标月份,则CASE
语句将计算为1
,否则为NULL
。1
本身并不重要。您可以使用0
、X
、patient\u id
或任何非空值来获得相同的效果。Martin,感谢您的解释和帮助。关于月份,我使用其他函数来确定下一个月,为了简洁起见,我在示例中省略了它们。