Mysql выбрать одно поле необходимо с разными условиями - PullRequest
0 голосов
/ 30 марта 2019

Я работаю над MySQL. Я должен подать один файл из таблицы БД в трех разных условиях.

my db table user_pay
fields- username,amt,postingDate,category

Я хочу получить результат, подобный условиям

username  amtbeforedate  amtbetweendate amtcategory
john            500           1000          1200

согласно полям

where conditions- startdate, enddate, category
username
amtbeforedate= sum(amt) From user_pay WHERE postingDate >  startdate
amtbetweendate=sum(amt) From user_pay WHERE postingDate BETWEEN startdate AND enddate AND (category='paid' OR category='notpaid')
amtcategory =sum(amt) From user_pay WHERE postingDate BETWEEN startdate AND enddate AND (category='adjustment')

Я хочу этот результат в одном запросе.я пытаюсь другой пример, но не получая никакого результата запроса будет вызываться только один раз на запрос, а не один раз на строку

1 Ответ

0 голосов
/ 30 марта 2019

Если я правильно понял ваш вопрос, вы можете применить условие внутри суммы к чему-то подобному

SUM(CASE WHEN postingDate > startdate THEN amt ELSE 0 END) as amtbeforedate

Весь запрос выглядит так

select 
 SUM(CASE WHEN postingDate > startdate THEN amt ELSE 0 END) as amtbeforedate
 SUM(CASE WHEN postingDate BETWEEN startdate AND enddate AND (category='paid' OR category='notpaid')
THEN amt ELSE 0 END) as amtbetweendate
 SUM(CASE WHEN postingDate BETWEEN startdate AND enddate AND (category='adjustment') THEN amt ELSE 0 END) as amtbeforedate
from user_pay

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...