Решите этот запрос в кросс-таблице использования - PullRequest
0 голосов
/ 24 октября 2018

Вот моя таблица базы данных

| 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     |

1 Ответ

0 голосов
/ 24 октября 2018

Вы можете попробовать использовать условное агрегирование

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
...