Количество заказов по городам - PullRequest
0 голосов
/ 20 июня 2011

Мой запрос:

select  distinct a.city, 
        (
            select count(*) 
            from sales_flat_order 
            where a.email=b.customer_email 
            group by a.city
        ) as 'lora' 
from sales_flat_order_address a, sales_flat_order b 
group by a.city

Результат:

City1 : 15
City2: (NULL)

Ожидаемый результат:

City1 : 13
City2: 2

Ответы [ 4 ]

4 голосов
/ 20 июня 2011
select a.city, count(*) as 'lora' 
from sales_flat_order_address a
        INNER JOIN sales_flat_order b 
            ON a.email=b.customer_email 
group by a.city
1 голос
/ 20 июня 2011
SELECT count(sfoa.city) as count_of_city, sfoa.city 
FROM sales_flat_order as sfo 
LEFT JOIN sales_flat_order_address as sfoa ON sfo.entity_id=sfoa.parent_id 
WHERE sfoa.address_type="shipping" 
GROUP BY sfoa.city;

Это то, что вы ищете (разработано для magento 1.5)?

РЕДАКТИРОВАТЬ Необходимо иметь фильтр для типа адреса, так как каждый заказ будет иметь выставление счетов и доставкуадрес.

0 голосов
/ 20 июня 2011

кажется проблемой в предложении no where для привязки sales_flat_order_address a и sales_flat_order b

0 голосов
/ 20 июня 2011
select count(*) from sales_flat_order where a.email=b.customer_email group by a.city

может вернуть несколько строк. его нельзя использовать в предложении SELECT в качестве поля запроса, если только поле EMAIL не имеет какого-либо уникального индекса, например, кроме того, он содержит синтаксическую ошибку с точки зрения ANSI SQL. Предложение GROUP BY здесь избыточно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...