Помогите написать сложный запрос на соединение - PullRequest
0 голосов
/ 29 ноября 2009

У меня есть стол заказов

orders (
id  int unsigned not null,
fcr_date  TIMESTAMP,
completion_date TIMESTAMP,
factory_no  varchar(255),
vendor_no  varchar(255))

Пожалуйста, игнорируйте опечатки типа данных, если они есть.

Я хочу написать SQL-запрос, который поможет мне получить данные по фабрике поставщиков. Данные для выборки включают количество заказов на фабрику поставщика (уникальная группа vendor_no, factory_no), vendor_no, factory_no и количество заказов, для которых fcr_date больше, чем complete_date.

Я новичок в SQL, и этот конкретный запрос мне кажется довольно сложным. Буду признателен, если кто-нибудь подскажет мне, как написать этот запрос.

Спасибо.

Ответы [ 3 ]

3 голосов
/ 29 ноября 2009

Вы можете попробовать что-то вроде этого

SELECT  vendor_no,
        factory_no,
        COUNT(1),
        SUM(CASE WHEN fcr_date > completion_date THEN 1 ELSE 0 END)
FROM    @orders
GROUP BY vendor_no,
        factory_no
1 голос
/ 29 ноября 2009
SELECT   vendor_no,
         factory_no,
         COUNT(id),
         SUM(IF(fcr_date > completion_date, 1, 0))
FROM     orders
GROUP BY vendor_no, factory_no;

У меня работает с MySQL.

0 голосов
/ 26 мая 2011

Ишу, назови свой столбец как-нибудь, кроме «процентов», поскольку процент может быть функцией pgsql!

...