Сумма дебета на базе месяца в SQL -- mysql поле с участием sql поле с участием date пол Связанный проблема

sum of debit on the base of month in sql


0
vote

проблема

русский

У меня есть квитанция об имени таблицы Скретко, как следует,

 <код> account_no  date        transaction_type  amount    s1       2012-7-7    opening           500    s1       2012-8-13   deposit           1000    s1       2012-7-17   deposit           400   

Теперь у меня есть следующий запрос

 <код> select  month(r.date),   sum(case when (month(r.date))='7' and r.transaction_type='opening' and r.transaction_type='deposit' then r.amount else '' end )as debit  from receipt r  where r.account_no='s1'   

Но это дает мне вывод как:

 <код> month  debit  7      0   

Может кто-нибудь сказать мне, почему он дает мне этот вывод?

Редактировать

Если я хочу разместить имя месяца вместо номера, то как сделать это

Английский оригинал

I have a table name receipt the scema is as follow

account_no  date        transaction_type  amount    s1       2012-7-7    opening           500    s1       2012-8-13   deposit           1000    s1       2012-7-17   deposit           400 

Now I have the following query

select  month(r.date),   sum(case when (month(r.date))='7' and r.transaction_type='opening' and r.transaction_type='deposit' then r.amount else '' end )as debit  from receipt r  where r.account_no='s1' 

But it is giving me output as:

month  debit  7      0 

can any one tell me why it is giving me this output ?

Edit

if i want to place the name of month instead of number then how to do that

</div
        
   
   

Список ответов

3
 
vote
vote
Лучший ответ
 

Похоже, вы хотите <код> OR условие между <код> r.transaction_type='opening' and r.transaction_type='deposit' вместо <код> AND

 <код> select date_format(r.date, '%M'),   sum(case when (month(r.date))='7'          and (r.transaction_type='opening'            or r.transaction_type='deposit')        then r.amount else 0 end )as debit  from receipt r  where r.account_no='s1'   

Смотрите SQL Widdle с Demo

или вы можете использовать:

 <код> select date_format(r.date, '%M'),   sum(r.amount) from receipt r where r.account_no='s1'   and month(r.date) = 7   and r.transaction_type in ('opening', 'deposit')   

Смотрите SQL Widdle с Demo

Если вы хотите получить <код> $client = new Google_Client(); // Get your credentials from the console $client->setClientId('**********************'); $client->setClientSecret('*********'); $client->setRedirectUri('*********'); $client->setScopes(array('https://www.googleapis.com/auth/drive')); $authUrl = $client->createAuthUrl(); print $authurl $authCode = ''; // insert the verification code that you get after going to url in $authurl file_put_contents('token.json', $client->authenticate($authCode)); 0 на все месяцы, то вам нужно будет добавить <код> $client = new Google_Client(); // Get your credentials from the console $client->setClientId('**********************'); $client->setClientSecret('*********'); $client->setRedirectUri('*********'); $client->setScopes(array('https://www.googleapis.com/auth/drive')); $authUrl = $client->createAuthUrl(); print $authurl $authCode = ''; // insert the verification code that you get after going to url in $authurl file_put_contents('token.json', $client->authenticate($authCode)); 1 :

 <код> $client = new Google_Client(); // Get your credentials from the console $client->setClientId('**********************'); $client->setClientSecret('*********'); $client->setRedirectUri('*********'); $client->setScopes(array('https://www.googleapis.com/auth/drive'));  $authUrl = $client->createAuthUrl(); print $authurl  $authCode = ''; // insert the verification code that you get after going to url in $authurl file_put_contents('token.json', $client->authenticate($authCode)); 2  

или

 <код> $client = new Google_Client(); // Get your credentials from the console $client->setClientId('**********************'); $client->setClientSecret('*********'); $client->setRedirectUri('*********'); $client->setScopes(array('https://www.googleapis.com/auth/drive'));  $authUrl = $client->createAuthUrl(); print $authurl  $authCode = ''; // insert the verification code that you get after going to url in $authurl file_put_contents('token.json', $client->authenticate($authCode)); 3  

Смотрите SQL Widdle с Demo

 

It seems like you want an OR condition between r.transaction_type='opening' and r.transaction_type='deposit' instead of the AND

select date_format(r.date, '%M'),   sum(case when (month(r.date))='7'          and (r.transaction_type='opening'            or r.transaction_type='deposit')        then r.amount else 0 end )as debit  from receipt r  where r.account_no='s1' 

See SQL Fiddle with Demo

Or you can use:

select date_format(r.date, '%M'),   sum(r.amount) from receipt r where r.account_no='s1'   and month(r.date) = 7   and r.transaction_type in ('opening', 'deposit') 

See SQL Fiddle with Demo

If you want to get the sum() for all months, then you will need to add a group by:

select date_format(r.date, '%M'),   sum(r.amount) from receipt r where r.account_no='s1'   and r.transaction_type in ('opening', 'deposit') group by month(r.date); 

OR

select date_format(r.date, '%M'),   sum(case when (r.transaction_type='opening'          or r.transaction_type='deposit')        then r.amount else 0 end )as debit  from receipt r  where r.account_no='s1' group by month(r.date) 

See SQL Fiddle with Demo

</div
 
 
     
     
2
 
vote

Вы говорите

 <код> $client = new Google_Client(); // Get your credentials from the console $client->setClientId('**********************'); $client->setClientSecret('*********'); $client->setRedirectUri('*********'); $client->setScopes(array('https://www.googleapis.com/auth/drive'));  $authUrl = $client->createAuthUrl(); print $authurl  $authCode = ''; // insert the verification code that you get after going to url in $authurl file_put_contents('token.json', $client->authenticate($authCode)); 4  

<Код> $client = new Google_Client(); // Get your credentials from the console $client->setClientId('**********************'); $client->setClientSecret('*********'); $client->setRedirectUri('*********'); $client->setScopes(array('https://www.googleapis.com/auth/drive')); $authUrl = $client->createAuthUrl(); print $authurl $authCode = ''; // insert the verification code that you get after going to url in $authurl file_put_contents('token.json', $client->authenticate($authCode)); 5 никогда не будет "Открытие" и "Device '

 

You're saying

 ...r.transaction_type='opening' and r.transaction_type='deposit'  

r.transactiontype is never going to be both 'opening' and 'deposit'

</div
 
 
0
 
vote

Я бы переписал ваш запрос на

 <код> $client = new Google_Client(); // Get your credentials from the console $client->setClientId('**********************'); $client->setClientSecret('*********'); $client->setRedirectUri('*********'); $client->setScopes(array('https://www.googleapis.com/auth/drive'));  $authUrl = $client->createAuthUrl(); print $authurl  $authCode = ''; // insert the verification code that you get after going to url in $authurl file_put_contents('token.json', $client->authenticate($authCode)); 6  

Изменение <код> $client = new Google_Client(); // Get your credentials from the console $client->setClientId('**********************'); $client->setClientSecret('*********'); $client->setRedirectUri('*********'); $client->setScopes(array('https://www.googleapis.com/auth/drive')); $authUrl = $client->createAuthUrl(); print $authurl $authCode = ''; // insert the verification code that you get after going to url in $authurl file_put_contents('token.json', $client->authenticate($authCode)); 7 на <код> $client = new Google_Client(); // Get your credentials from the console $client->setClientId('**********************'); $client->setClientSecret('*********'); $client->setRedirectUri('*********'); $client->setScopes(array('https://www.googleapis.com/auth/drive')); $authUrl = $client->createAuthUrl(); print $authurl $authCode = ''; // insert the verification code that you get after going to url in $authurl file_put_contents('token.json', $client->authenticate($authCode)); 8 как другие уже указали.

 

I would rewrite your query to

select month(r.date) as month,        sum(r.amount) as debit from receipt r where r.account_no = 's1'       and month(r.date) = 7       and (r.transaction_type = 'opening' or r.transaction_type = 'deposit'); 

changing the and to or as others already pointed out.

</div
 
 

Связанный проблема

-2  PHP отображается только идентификатор, а не значение из MySQL [Закрыто]  ( Php only displaying id and not the value from mysql ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыт . Этот вопрос нуждается в Детали или ясность . В настоящее...

0  Добавление поля в запросе MySQL  ( Adding a field in a mysql query ) 
Мне нужно добавить поле в одном из наших запросов. Я NT PHP-программист купил, я немного ударил. Запрос: <код> if (_QUERYSTRING_) { switch ($intMode) { ...

0  Лучший способ написать этот запрос?  ( Best way to write this query ) 
Я делаю подпроси в присоединении к другой таблице, когда я хотел иметь возможность отсортировать результаты, которые я вернулся с ним, мне нужен только первый...

1  Заказ в порядке без использования событий  ( Order in order without using events ) 
Моя таблица MySQL имеет следующую структуру: <код> +------+----------+-----+-----------+----------------+----------+ | uuid | username | ... | clan_rank | u...

3  Можно ли сделать впрыск SQL (высокий уровень) на чертовом уязвимом веб-приложении?  ( Is it possible to do sql injection high level on damn vulnerable web app ) 
Я искал по всему Google Google, чтобы увидеть, как можно было бы обойти следующее (его от высокого уровня безопасности от DVWA): <код> $id = $_GET['id']; ...

1  Размер базы данных для календаря событий  ( Database size for an event calendar ) 
Я делаю проект на календаре событий, используя PHP и MySQL. У меня есть сомнение, что, когда мы стараемся включить события в каждый час в каждый день, он де...

0  Использование драйвера UnixoDBC для подключения к MySQL, база данных по умолчанию не работает  ( Using unixodbc driver to connect to mysql default database not working ) 
У меня есть мой unixodbc odbc.ini configure файл, как это: <код> [test] Driver = /usr/local/lib/libmyodbc5-5.1.8.so Description = Connector/ODBC 5.1.8 Drive...

0  Как написать запрос на Symfony2  ( How to write query on symfony2 ) 
Как я могу написать это в моем репозитории, чтобы иметь возможность работать с ним в моем контроллере? <код> SELECT COUNT(id_pnc) FROM programmevol p WHERE...

8  MySQL Заказ с использованием строки даты данных  ( Mysql order by using date data row ) 
У меня есть запрос что-то подобное: <код> public class AlarmReciever extends BroadcastReceiver { AlarmClock alarmClock=new AlarmClock(); @Override public v...

1  Иерархическая система комментариев в резьбовом режиме: php и mysql  ( Hierarchical commenting system in threaded view php and mysql ) 
У меня есть необходимость оказать резьбовое изображение 2-уровневых иерархических комментариев системы. Комментарии хранятся в базе данных. Информация о иерар...

1  MySQL DPKG вернул код ошибки  ( Mysql dpkg returned an error code ) 
Поскольку Ubuntu 16.04 Я не могу установить новую версию MySQL-сервера (5.7). <код> mysql dpkg returned an error code ... Errors were encountered while proc...

2  Testopia: невозможно добавить тестовые случаи в тестовый прогон  ( Testopia unable to add test cases to a test run ) 
Bugzilla 4.4. , Tesopia 2.5, Ubuntu 15 все обновляется и почти по умолчанию по настройкам. Каждый раз, когда я пытаюсь обновить / редактировать существующи...

3  MySQL слишком много подключений  ( Mysql too many connections ) 
Я ненавижу воспитывать вопрос, который широко спрашивает в Интернете, но я не могу решить это. Я начал проект некоторое время назад и после месяца тестирова...

0  Оптимизировать этот запрос на 1000000+ строк  ( Optimize this query for 1000000 rows ) 
Мне нужно потянуть данные и записывать его в файл CSV, но слишком много времени и слишком много времени. Что не так с этим и что я могу сделать? Кроме того, я...

0  Вызов к функции элементов вставить () на нуле. Codeigniter  ( Call to a member function insert on null codeigniter ) 
Привет всем, что я получаю следующую ошибку, когда я отправляю свою форму на мой веб-сайт CI 3: FATAL ОШИБКА: вызов функции элементов вставить () на NULL ...

Связанный проблема

-2  PHP отображается только идентификатор, а не значение из MySQL [Закрыто] 
0  Добавление поля в запросе MySQL 
0  Лучший способ написать этот запрос? 
1  Заказ в порядке без использования событий 
3  Можно ли сделать впрыск SQL (высокий уровень) на чертовом уязвимом веб-приложении? 
1  Размер базы данных для календаря событий 
0  Использование драйвера UnixoDBC для подключения к MySQL, база данных по умолчанию не работает 
0  Как написать запрос на Symfony2 
8  MySQL Заказ с использованием строки даты данных 
1  Иерархическая система комментариев в резьбовом режиме: php и mysql 
1  MySQL DPKG вернул код ошибки 
2  Testopia: невозможно добавить тестовые случаи в тестовый прогон 
3  MySQL слишком много подключений 
0  Оптимизировать этот запрос на 1000000+ строк 
0  Вызов к функции элементов вставить () на нуле. Codeigniter