SQL Server查询:如何将一个SELECT合并到另一个?
问题描述:
我有我的SQL Server查询一个问题,我希望你能帮助我SQL Server查询:如何将一个SELECT合并到另一个?
主要选择必须输出的重量
我如何可以总结一个选择到其他的日期和金额?数据从一个表Tbreport
服用,而条件是 - 总重量的具体日期和一个日期(具体日期减去1天)
。例如:
CONCRETE DATE WEIGHT
Jan 1 100
Jan 2 150
Jan 3 210
PREVIOUS DATE WEIGHT
Jan 1 100
Jan 2 250 (Jan 1 + Jan 2)
Jan 3 460 (Jan 1 + Jan 2 + Jan 3)
在真正的表我有格式秒。例如:1358892000秒是2013年1月23日0:00:00和1358978400是2013年1月23日23:59:00。而且每次都是自己的体重
查询:
SELECT CONVERT(varchar, DATEADD(s, TBreport.date, 25568), 102) AS DATE,
SUM(TBreport.weight)
+
(
SELECT SUM(TBreport.weight) AS WEIGHT
FROM TBreport INNER JOIN TBway ON TBreport.id_way = TBway.id
WHERE (SUBSTRING(TBway.name, 5, 8) LIKE 'to warehouse')
AND ... ???
GROUP BY CONVERT(varchar, DATEADD(s, TBreport.date, 25568), 102)
)
FROM TBreport INNER JOIN TBway ON TBreport.id_way = TBway.id
WHERE (SUBSTRING(TBway.name, 5, 8) LIKE 'to warehouse')
GROUP BY CONVERT(varchar, DATEADD(s, TBreport.date, 25568), 102)
答
我假设date
是TBreport
SELECT this.date, SUM(upToThis.weight)
FROM TBreport this
INNER JOIN TBreport upToThis ON upToThis.date <= this.date
GROUP BY this.date
独特为什么你把这叫做“丑陋”的方式?你有另一种方式做到这一点,会不那么丑陋? – Yoh 2013-02-25 09:36:55
数据以秒为单位存储,每隔5-10分钟测量一次,之后按重量加总。你的代码已经执行了15分钟(我认为它不工作)。 当我尝试总结我的查询时,我收到此错误消息 >只有一个表达式可以在选择列表中指定一个表达式,而不是在EXISTS中引入 >子查询。 – Jkterina 2013-02-25 10:06:17
@Yohsoog这是“丑陋的”,因为它可能非常缓慢。使用游标很可能* *更快。 – 2013-02-25 10:13:35