0

我有一张桌子订单

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 大于 completion_date 的订单数量。

我是 sql 新手,这个特定的查询对我来说似乎很复杂。如果有人能指导我如何编写此查询,我将不胜感激。

谢谢。

4

3 回答 3

3

你可以试试这样的

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
于 2009-11-29T10:29:43.293 回答
1
SELECT   vendor_no,
         factory_no,
         COUNT(id),
         SUM(IF(fcr_date > completion_date, 1, 0))
FROM     orders
GROUP BY vendor_no, factory_no;

对我有用 MySQL。

于 2009-11-29T10:31:04.033 回答
0

Ishu,将您的列命名为“百分比”以外的名称,因为百分比可能是 pgsql 函数!

于 2011-05-26T14:26:51.497 回答