SQL Server从不同的表中查找列差异并填充中间日期

时间:2016-06-16 21:24:34

标签: sql-server union cumulative-sum

我在一个表#temp1中有购买条目,在另一个表#temp2中有多个商店的销售历史记录。一天内可能没有销售,没有购买,或者两者兼有。我需要建立一个每日股票的图表。

基本上,我被困在查询部分。对于第一部分,我需要将两个表组合在一起查看数据......

enter image description here

其次,我需要找到股票的累积值;类似......

enter image description here

我得到之后我需要最终绘制它...帮助!!! QUERY MASTER !!!

2 个答案:

答案 0 :(得分:1)

如果你开始使用联盟之类的东西:

SELECT Store, Date, Purchase, 0 Sales FROM #temp1
UNION ALL
SELECT Store, Date, 0, Sales FROM #temp2 

您拥有一个表/视图中的所有数据。从那里,你可以通过

巩固事物
 SELECT 
     Store, Date, 
     Sum(Purchase) Purchase, 
     Sum(Sales) Sales, 
     Sum(Purchase) - Sum(Sales) InStock  
GROUP BY
     Store, Date

这将为您提供一行中的商店,日期,购买,销售和库存视图。如果您通过查询而不是临时表工作,则可以轻松使用最终视图来提供SSRS并绘制图形。

希望有所帮助。

答案 1 :(得分:0)

是的,@ mark的提示工作......

select store,date,ISNULL(purchase,0) as purchase,0 as sales 
into #tbl
from temp1
union all
select store,date,0 as purchase,ISNULL(sales,0) as sales from temp2

select store,sum(purchase) as PUR,sum(sales) as SAL,sum(purchase-sales) as STOCK from #tbl
group by store,date
order by storename

drop table #tbl

并且,两者之间的空日期由SSRS报告工具自动管理。 但是,到目前为止累积的金额还无法解决......