繁体   English   中英

使用交叉表解决此查询

[英]Solve this query in use crosstab

这是我的数据库表

| name |  |leave type|  |total lday|  |balance leave|  |balance|
|Nasrin|  |Annual    |  |3         |  |        14   |  |11     |
|labiba|  |Annual    |  |3         |  |        20   |  |17     |
|Zakir |  |Casual    |  |3         |  |        10   |  |7      |
|jabin |  |Earned    |  |3         |  |        14   |  |11     |

现在我想在这个查询中进行一些修改

| name |  |Annual|   |Casual|  |Earned| |balance leave| |balance|
|Nasrin|  |3     |   |0     |  |0     | |        14   |  |11     |
|labiba|  |3     |   |0     |  |0     | |        20   |  |17     |
|Zakir |  |0     |   |3     |  |0     | |        10   |  |7      |
|jabin |  |0     |   |0     |  |3     | |        14   |  |11     |

您可以尝试使用条件聚合

select 
   name, 
   max(case when leave_type='Annual' then "total lday" end) as Annual,
   max(case when leave_type='Casual' then "total lday" end) as Casual,
   max(case when leave_type='Earned' then "total lday" end) as Earned,
   balance leave,balance
from tablename
group by name,balance leave,balance

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM