2017-02-10 3 views
0

Я хочу, чтобы выбрать данные из следующей таблицы группы по датеКак выбрать результаты SQL, сгруппированные по дате

date  btype  amount 
1-2-2017 income  1000 
1-2-2017 income  200 
1-2-2017 Expense  100 
1-2-2017 Expense  200 

2-2-2017 income  1000 
2-2-2017 income  500 
2-2-2017 Expense  1000 

3-2-2017 income  2000 
3-2-2017 Expense  500 

Так что мой результат должен выглядеть следующим образом.

date  Income  Expense 
1-2-2017 1200  300 
2-2-2017 1500  1000 
3-2-2017 2000  500 

Будет ли какой-нибудь орган вести меня к тому, как писать SQL-запрос для достижения такого поведения!

ответ

2

Это довольно прямо вперед SQL, что вы должны быть в состоянии выяснить себя немного гугла:

select date 
     ,sum(if(btype = 'income', amount, 0)) as Income 
     ,sum(if(btype = 'expense', amount, 0)) as Expense 
from table 
group by date 
1

После создания тестовой таблицы, я вставил несколько записей, а затем я использовал этот запрос :

select date_ as Date_Time, btype, sum(amount) as amount 
from test 
group by date_ , btype 
+0

Пожалуйста, только добавить сценарии и результаты на ваш вопрос, как текст. Если вам нужно отформатировать результаты, перейдите на страницу https://ozh.github.io/ascii-tables/ и вставьте свой вывод SSMS. – iamdave

+0

Пожалуйста, не публикуйте изображения. – Strawberry

1

Другой метод

select date 
     ,sum(case when btype = 'income' then amount else 0 end) as Income 
     ,sum(case when btype = 'expense' then amount else 0 end) as Expense 
from table 
group by date 
Смежные вопросы