我必须列出在时间1和时间2之间的一行中不同的 电台售出的门票数量之间的差异。我有三张桌子:时间1,时间2和地点。在三张桌子上工作,我的分组不工作
create table fares_jan18 (
station varchar(100),
ff int
);
create table fares_feb1 (
station varchar(100),
ff int
);
create table stations (
name varchar(100),
line varchar(50)
);
我使用这个查询:
SELECT
fares_jan18.station AS name,
SUM(fares_feb1.ff - fares_jan18.ff) AS diff_feb1_jan18
FROM
fares_jan18
JOIN fares_feb1 ON fares_jan18.station = fares_feb1.station
JOIN stations ON fares_jan18.station = stations.name
WHERE
stations.line ="Broadway"
GROUP BY
name
ORDER BY
name;
它确实给我正确的表,但是当曾经有不止一个记录,我得到的复制差的总和。例如,具有两个值的电台的结果应该是33254,并且“给我66508”。我已经从我的查询中删除了该组,但似乎是记录而不是两个。
我已经阅读了所有我可以在StackOverflow,但我无法让我的头在我做错了什么?谢谢!!
这里是我的表的图像:
您在查询中使用的表格不同于您在顶部显示的表格。 – Barmar 2014-10-11 01:23:51
我删除了不必要的列并更改了表名以反映查询。希望我的编辑不是实质性的或被认为是无效的。 – jpw 2014-10-11 01:36:45