Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / составить запрос из двух таблиц / 8 сообщений из 8, страница 1 из 1
30.07.2015, 09:34:53
    #39019253
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составить запрос из двух таблиц
Приветствую! Помогите, пожалуйста, с запросом, что-то мозг от летней жары совсем не воспринимает..

табличка "заявка":
-----------------------------------
поля: id_z, sumd(сумма заявки)

табличка "поступления":
--------------------------------
поля: id, id_z, postup(сумма поступлений)

нужно выбрать COUNT(заявка.`id`) AS cnt (количество заявок ), SUM(заявка.`sumd`) AS sumz (сумма заявок),
по которым поступления равны сумме заявки, ну, или ( заявка .`sumd` - поступления .`postup`)=0
Ведь чувствую, что туплю, не должно быть очень сложно.. Благодарю за понимание!
...
Рейтинг: 0 / 0
30.07.2015, 11:19:43
    #39019368
T1gRa_NT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составить запрос из двух таблиц
Ну прочитайте про JOIN, вдруг натолкнет на мысль:
http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins
...
Рейтинг: 0 / 0
30.07.2015, 11:50:27
    #39019417
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составить запрос из двух таблиц
эх.. Не могу понять каким образом применить join в этом случае?
...
Рейтинг: 0 / 0
30.07.2015, 12:05:12
    #39019453
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составить запрос из двух таблиц
вот, к примеру, могу получить суммы
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT
  COUNT(b.`id_z`) as cnt, SUM(b.`sumd`) as sumd, post.`outsum` as post, 
SUM(`sumd`) -IFNULL( post.`outsum`, 0 ) AS debet
 	FROM zayavka b
LEFT JOIN (
  SELECT SUM(`postup`) as outsum, `id_z`
FROM `credit`
) post ON post.`id_z` = b.`id_z`


а как получить количество и сумму заявок для debet=0, ну, ни как..:(
...
Рейтинг: 0 / 0
04.08.2015, 03:31:07
    #39022205
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составить запрос из двух таблиц
Такое решение без join:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT
  COUNT(b.`id_z`) as cnt, 
  SUM(b.`sumd`) as sum_d
FROM 
  zayavka b
WHERE  
  b.`id_z`  IN
  ( 
   SELECT `id_z` FROM `credit` WHERE credit.`id_z`=b.`id_z`
   HAVING(SUM(b.`sumd`)-IFNULL(SUM(credit.`postup`),0)=0)
  )


или есть более изящное?
...
Рейтинг: 0 / 0
04.08.2015, 03:34:44
    #39022206
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составить запрос из двух таблиц
ну, или
Код: sql
1.
HAVING( SUM(b.`sumd`)=IFNULL(SUM(credit.`postup`),0) )
...
Рейтинг: 0 / 0
04.08.2015, 04:44:22
    #39022210
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составить запрос из двух таблиц
не правильное решение :(
...
Рейтинг: 0 / 0
04.08.2015, 05:19:19
    #39022211
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
составить запрос из двух таблиц
вот так, вроде правильно
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT
  COUNT(b.`id_z`) as cnt, 
  SUM(b.`sumd`) as sum_d
FROM 
  zayavka b
WHERE  
  b.`id_z`  IN
  ( 
   SELECT `id_z` FROM `credit` WHERE credit.`id_z`=b.`id_z`
   HAVING( b.`sumd`=IFNULL(SUM(credit.`postup`),0) )
  )
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / составить запрос из двух таблиц / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]