我试图找出每年销售的产品数量,我的数据库中有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
答案 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