PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 4
stig Отправлено: 22 Октября, 2018 - 13:19:45 • Тема: сумма сумм • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 77
Сам разобрался, если кому понадобится подобное, то вот..
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT SUM( bigsum )
  3. FROM (
  4.  
  5. SELECT SUM( sum ) AS bigsum
  6. FROM (
  7.  
  8. SELECT tnum, hp10_gamma AS sum
  9. FROM dose_rados
  10. WHERE date_change
  11. BETWEEN  '2018-01-01'
  12. AND  '2018-09-30'
  13. UNION ALL
  14. SELECT tnum, dose AS sum
  15. FROM neutron_dose
  16. WHERE DATE
  17. BETWEEN  '2018-01-01'
  18. AND  '2018-09-30'
  19. UNION ALL
  20. SELECT tnum, dose AS sum
  21. FROM doz_tld
  22. WHERE DATE
  23. BETWEEN  '2018-01-01'
  24. AND  '2018-09-30'
  25. UNION ALL
  26. SELECT tnum, dose AS sum
  27. FROM internal
  28. WHERE meash_date
  29. BETWEEN  '2018-01-01'
  30. AND  '2018-09-30'
  31. )D
  32. GROUP BY tnum
  33. HAVING SUM( sum ) >=15
  34. AND tnum IS NOT NULL
  35. ) AS
  36. GENERAL
  37.  
stig Отправлено: 22 Октября, 2018 - 09:11:35 • Тема: сумма сумм • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 77
здравствуйте! есть вопрос, запрос показывает таблицу.
задача запроса - показать все tnum, сумма псевдонимов sum в которых >=6.
В итоге получится, например, 100 tnum.

Вопрос - как получить сумму всех этих 100 результатов? Хорошо




CODE (SQL):
скопировать код в буфер обмена
  1.  
  2.  
  3. SELECT tnum
  4. FROM (
  5.  
  6. SELECT tnum, hp10_gamma AS sum FROM dose_rados WHERE date_change BETWEEN  '2018-01-01' AND  '2018-09-30'
  7. UNION ALL
  8.  
  9. SELECT tnum, dose AS sum FROM neutron_dose WHERE DATE BETWEEN '2018-01-01' AND  '2018-09-30'
  10. UNION ALL
  11.  
  12. SELECT tnum, dose AS sum FROM doz_tld WHERE DATE BETWEEN '2018-01-01' AND  '2018-09-30'
  13. UNION ALL
  14.  
  15. SELECT tnum, dose AS sum FROM internal WHERE meash_date BETWEEN '2018-01-01' AND  '2018-09-30'
  16.  
  17.  
  18. )D
  19. GROUP BY tnum
  20. HAVING SUM( sum ) >=6
  21. AND tnum IS NOT NULL
  22.  
  23.  
stig Отправлено: 12 Октября, 2018 - 08:23:37 • Тема: Сумам сумм с условием • Форум: Кодировки и все смежное

Ответов: 3
Просмотров: 1836
Мелкий пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT id FROM
  2. (
  3.   SELECT id, some_number FROM tbl1 WHERE date BETWEEN ? AND ?
  4.   UNION ALL
  5.   SELECT id, some_number FROM tbl2 WHERE date BETWEEN ? AND ?
  6.   UNION ALL
  7.   SELECT id, some_number FROM tbl3 WHERE date BETWEEN ? AND ?
  8.   UNION ALL
  9.   SELECT id, some_number FROM tbl4 WHERE date BETWEEN ? AND ?
  10. ) d
  11. GROUP BY id
  12. HAVING sum(some_number) = ?


Спасибо! Идею понял, но есть еще вопрос, названия полей и их количество должны быть одинаковы во всех четырех таблицах?
я получил ответ на свой запрос - #1248 - Every derived table must have its own alias
Каждый подзапрос должен иметь уникальный псевдоним?

CODE (SQL):
скопировать код в буфер обмена
  1.  
  2.  SELECT tnum FROM
  3.     (
  4.       SELECT tnum, sum(hp10_gamma) AS summa FROM dose_rados WHERE date_change BETWEEN '2018-01-01'  AND  '2018-09-30'
  5.       UNION ALL
  6.       SELECT tnum, sum(dose) AS summa FROM doz_tld WHERE date BETWEEN '2018-01-01'  AND  '2018-09-30'
  7.       UNION ALL
  8.       SELECT tnum, sum(dose) AS summa FROM internal WHERE meash_date BETWEEN  '2018-01-01'  AND  '2018-09-30'
  9.       UNION ALL
  10.       SELECT tnum, sum(dose) AS summa FROM neutron_dose WHERE date '2018-01-01'  AND  '2018-09-30'
  11.     )
  12.     GROUP BY tnum
  13.     HAVING sum(summa) >='6'
  14.        
  15.         #1248 - Every derived table must have its own alias
  16.  
stig Отправлено: 11 Октября, 2018 - 15:36:27 • Тема: Сумам сумм с условием • Форум: Кодировки и все смежное

Ответов: 3
Просмотров: 1836
Здравствуйте подскажите как написать запрос)
Есть 4 таблицы,
С одинаковой структурой:
Id; date; some_number

Нужно из каждой таблицы выбрать только те id,
У которых some_number в сумме по четырём таблицам будет равен например «6», за определенный заданный интервал date.

Буду рад любым идеям)

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB