Представляет MYSQL результат с указанным c условием - PullRequest
0 голосов
/ 24 января 2020

мне нужна помощь для представления результата моего запроса в конкретном c отчете с условием Вот мой результат запроса enter image description here после получения результата мне нужно представить его в виде отчета с некоторыми состояние, это было бы так:

Город A - Компания A

enter image description here

Город A - Компания B

enter image description here

Город A - Компания C - Служба A

enter image description here

Я понятия не имею, как это сделать, поскольку я действительно новичок в MySQL. Я хочу поместить запрос в PHP.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 24 января 2020

Это должно сработать. Если ваш исходный запрос также из SQL, поместите его во временную таблицу, а затем, используя следующий запрос, получите 3 ответа.

SELECT
pickup_date
,SUM( CASE WHEN [site] = 'SiteA' THEN 1 ELSE 0 END) as [SiteA]  
,SUM(CASE WHEN [site] = 'SiteB' THEN 1 ELSE 0 END) as [SiteB]  
,SUM(CASE WHEN [site] = 'SiteB' THEN 1 ELSE 0 END) as [SiteC]  

FROM
tbl

WHERE
[city] = 'CityA'
AND
[company_name] = 'CompanyA'

GROUP BY
pickup_date


SELECT
pickup_date
,SUM( CASE WHEN [site] = 'SiteA' THEN 1 ELSE 0 END) as [SiteA]  
,SUM(CASE WHEN [site] = 'SiteB' THEN 1 ELSE 0 END) as [SiteB]  
,SUM(CASE WHEN [site] = 'SiteB' THEN 1 ELSE 0 END) as [SiteC]  

FROM
tbl

WHERE
[city] = 'CityA'
AND
[company_name] = 'CompanyB'

GROUP BY
pickup_date


SELECT
pickup_date
,SUM( CASE WHEN [site] = 'SiteA' THEN 1 ELSE 0 END) as [SiteA]  
,SUM(CASE WHEN [site] = 'SiteB' THEN 1 ELSE 0 END) as [SiteB]  
,SUM(CASE WHEN [site] = 'SiteB' THEN 1 ELSE 0 END) as [SiteC]  

FROM
tbl

WHERE
[city] = 'CityA'
AND
[company_name] = 'CompanyC'
AND
[service_name] = 'ServiceA'

GROUP BY
pickup_date
0 голосов
/ 24 января 2020

Вы можете сделать это следующим образом:

Город A - Компания A:

select pick_date, sum(Weight), 
sum(case when site = 'SiteA' then 1 else 0 end) as SiteA, 
sum(case when site = 'SiteB' then 1 else 0 end) as SiteB, 
sum(case when site = 'SiteC' then 1 else 0 end) as SiteC
From tbl
where company_name = 'CompanyA'
group by pick_date

Для города A - Компания B замените «CompanyA» на CompanyB в запросе

Для компании C - Сервис A:

select pick_date, sum(Weight), 
sum(case when site = 'SiteA' then 1 else 0 end) as SiteA, 
sum(case when site = 'SiteB' then 1 else 0 end) as SiteB, 
sum(case when site = 'SiteC' then 1 else 0 end) as SiteC
From tbl
where company_name = 'CompanyC' and service_name = 'ServiceA'
group by pick_date
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...