sql >> Database >  >> RDS >> Mysql

SQL-query met union en join

Gebruik de volgende zoekopdracht

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'

De group by-clausule is niet nodig voor de inner queries, omdat er geen groepsfunctie is. Ik heb het verplaatst naar de buitenste zoekopdracht



  1. Oracle selecteer wederzijdse subtekenreeks

  2. MySQL:Wat is het verschil tussen float en double?

  3. Hoe JSON-gegevens op te slaan in MySQL

  4. Kan de MySQL-datum/tijd-waarde niet converteren naar System.DateTime.Kon de waarde 0/0/0000 0:00:00 niet opslaan?