查询中的SQL子查询

克里斯

我有一张有付款表:

worker_id, amount, payed, date

表工人:

id, name, lname

我需要编写SQL,为我提供名称,名称和总和,分别为6月,7月,8月和9月。

Name | Lname | Sum_JUN | Sum_JULY | Sum_AUG | Sum_SEP

我正在尝试子查询,但无法执行。你能帮助我吗?

我创建了SQL(示例)。我将用PHP替换日期。

select w.name, w.lname,
sum(case when p.payed_date between '2014-06-01' and '2014-06-31' then p.amount else 0 end) `sum_june`,
sum(case when p.payed_date between '2014-07-01' and '2014-07-31' then p.amount else 0 end) `sum_july`,
sum(case when p.payed_date between '2014-08-01' and '2014-08-31' then p.amount else 0 end) `sum_august`,
sum(case when p.payed_date between '2014-09-01' and '2014-09-31' then p.amount else 0 end) `sum_september`,
sum(case when p.payed_date between '2014-10-01' and '2014-10-31' then p.amount else 0 end) `sum_november`
from worker w
left join worker_sum p on(w.id = p.worker_id)
group by w.id
哈里德·朱奈德(M Khalid Junaid)

您可以使用条件聚合来获得所需的总和,但这将为您提供表中存在的所有年份的月份总和

select w.*,
sum(case when month(p.date) = 6 then p.amount else 0 end) `sum_june`,
sum(case when month(p.date) = 7 then p.amount else 0 end) `sum_july`,
sum(case when month(p.date) = 8 then p.amount else 0 end) `sum_august`,
sum(case when month(p.date) = 9 then p.amount else 0 end) `sum_september`
from workers w
left join payment p on(w.id = p.worker_id)
group by w.id

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SQL中查询子查询结果

来自分类Dev

替换SQL查询中的子查询

来自分类Dev

子查询中的SQL Select

来自分类Dev

SQL查询,子查询减去子查询?

来自分类Dev

嵌套查询,子查询SQL

来自分类Dev

mongo查询中的组成(等同于SQL子查询)

来自分类Dev

在我的SQL查询中编写LIMIT子查询

来自分类Dev

存在的SQL查询并计数子查询中的许多字段

来自分类Dev

在Salesforce SQL(SOQL)中查询包含JOINS的子查询

来自分类Dev

子查询或SQL中的多个查询以获取结果

来自分类Dev

简化/重用此 SQL 查询中的子查询

来自分类Dev

选择插入中的SQL Server子查询

来自分类Dev

在SQL Server中按子查询分组

来自分类Dev

子查询T-SQL中的GROUP BY

来自分类Dev

子查询中的SQL Group By语句

来自分类Dev

参数化SQL中的子查询

来自分类Dev

在SQL中的子查询中使用group by

来自分类Dev

在Oracle SQL中返回多行的子查询

来自分类Dev

子查询T-SQL中的GROUP BY

来自分类Dev

C#中的SQL子查询

来自分类Dev

SQL替代FROM中的子查询

来自分类Dev

在SQL Server中按子查询分组

来自分类Dev

子查询/ SQL中的联接问题

来自分类Dev

SQL Server 2012中的复杂子查询

来自分类Dev

在linq to sql中嵌套IN子查询

来自分类Dev

字段列表中的SQL WHERE子查询

来自分类Dev

在SQL子查询中聚合计数

来自分类Dev

在SQL中的子查询中使用group by

来自分类Dev

子查询中的SQL Server重用别名