Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie SQL z unią i dołączeniem

Użyj następującego zapytania

select `company_name, `store_name`, MONTH, sum(`sales`) as sales, sum(purchase) as purchase   from (
select `company_group`.`company_name, `store`.`store_name`, MONTHNAME(date) AS MONTH,`sales`.`sales` , 0 as purchase
from company_group, store,sales
where `company_group`.`company.id`=`sales`.`company.id`
and `store`.`store.id`=`sales`.`store.id`

UNION

select `company_group`.`company_name, `store`.`store_name`, MONTHNAME(date) AS MONTH,`wh_sales`.`sales`, 0 as purchase
from company_group, store,wh_sales
where `company_group`.`company.id`=`wh_sales`.`company.id`
and `store`.`store.id`=`wh_sales`.`store.id`

UNION

select `company_group`.`company_name, `store`.`store_name`, MONTHNAME(date) AS MONTH, 0 as sales, purchase
from company_group, store,purchase
where `company_group`.`company.id`=`purchase`.`company.id`
and `store`.`store.id`=`purchase`.`store.id`) a
group by company_name,store_name, 'MONTH'

Klauzula group by nie jest potrzebna dla zapytań wewnętrznych, ponieważ nie ma funkcji grupy. Przeniosłem go do najbardziej zewnętrznego zapytania



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel elokwentny kreator zapytań - Suma z grupą na relacji

  2. Utwórz tabelę, jeśli nie istnieje z mysqldump

  3. Używanie bulk_update_mappings w SQLAlchemy do aktualizowania wielu wierszy z różnymi wartościami

  4. Jak mogę używać przezroczystego szyfrowania danych w MySQL?

  5. SQLSTATE[22007]:Nieprawidłowy format daty i godziny:1292 Niepoprawna wartość daty i godziny:„2008-03-30 02:56:12”