计数查询没有给我我期望的结果

时间:2015-12-29 13:05:47

标签: sql oracle

我试图找出每年销售的产品数量,我的数据库中有1000条记录,我遇到的问题是,当我运行查询时,所有年份都加起来为1000,所以我的结果是说我每年卖出1000件产品。虽然,情况并非如此。任何帮助都将受到赞赏。

CREATE TABLE product_dim(
    product_id  INTEGER NOT NULL,
    product_name    VARCHAR(25),
    quantity    INTEGER NOT NULL,
    CONSTRAINT  pk_product_dim PRIMARY KEY (product_id)
);


CREATE TABLE time_dim(
    time_id INTEGER NOT NULL,
    year    INTEGER,
    CONSTRAINT  pk_time_dim PRIMARY KEY (time_id)
);

Select    year ,count(*) product_id
FROM      product_dim, time_dim
INNER JOIN store_dim
ON account_dim.account_id=store_dim.fk1_account_id 
   group by year

2 个答案:

答案 0 :(得分:0)

此查询将返回1000,因为您使用的是 COUNT(*)。它将计算该行上的总行数。您需要使用 SUM(column_name)
请参阅此http://www.w3schools.com/sql/sql_func_sum.asp

product_dim &的关系是什么?的 time_dim

答案 1 :(得分:0)

如果您只想计算产品数量,则必须将结点添加到" product_dim":

SELECT year
    ,sum(c.quantity) AS quantity
FROM time_dim a
INNER JOIN store_dim b
    ON a.time_id = b.time_id
INNER JOIN product_dim c
    ON b.product_id = c.product_id
GROUP BY year