0
我有大数据集,我想比较数据。比如预算和实际的比较。根据讨论哪个(管理)级别,我需要类似的查询。Full Outer将两个选择合并为一个数据集进行分析
数据集:
Year float
Period float
Weeknumber float
Account nvarchar(255)
Customer nvarchar(255)
Account manager nvarchar(255)
Market nvarchar(255)
Country nvarchar(255)
Customercode float
Customername nvarchar(255)
Article float
Description nvarchar(255)
Productgroup nvarchar(255)
Line nvarchar(255)
Fresh nvarchar(255)
OwnProduction nvarchar(255)
NNNRevenue decimal(10, 2)
CM decimal(10, 2)
Pieces decimal(10, 2)
KG decimal(10, 2)
TriggerId nvarchar(255)
YearWeek nvarchar(255)
的最基本的查询:
SELECT [Article]
,sum([NNNRevenue]) as Revenue
,sum([Pieces]) as Pieces
,sum([KG]) as KG
FROM [PP_Test].[dbo].[history]
where year = '2018'
and period = '2'
group by Article
order by Article
结果将类似于:
Article Revenue Pieces KG
6852 123548,12 654813 13248,61
10031 489642,15 4687896 56478,54
4477 4698,78 54846 46,15
我有[PP_Test]完全相同的查询[DBO] 。[预算]。我需要的是一个(完整的?)加入,我的新结果将是预算或历史文件中的任何文章。
结果举例想:
Article H.Revenue H.Pieces H.KG B.Revenue B.Pieces B.KG
6852 123548,12 654813 13248,61 51346,12 321558 87156,12
10031 489642,15 4687896 56478,54 541326 21314 13215,15
4477 4698,78 54846 46,15 321564,74 14548 132147,87
16531 0 0 0 1278,15 1348 1348,15
55555 123151,15 13234 154884 0 0 0
我的代码
SELECT h.[Article]
,sum([NNNRevenue]) as RevenueHis
,sum([Pieces]) as PiecesHis
,sum([KG]) as KGHis
,RevenueBud
,PiecesBud
,KgBud
FROM
(
SELECT [Article]
,sum([NNNrevenue]) as RevenueBud
,sum([Pieces]) as PiecesBud
,sum([KG]) as KGBud
FROM [PP_Test].[dbo].[budget]
Where year = '2018'
and Period = '2'
group by Article
) as B
Full outer join [PP_Test].[dbo].[history] as H
on B.Article = H.Article
where year = '2018'
and period = '2'
group by h.Article, RevenueBud, PiecesBud, KGBud
order by h.Article
这将导致表我想,但我想它存在于预算,但没有在历史上(实际值)的项目。这似乎是由于h.article上的选择,但我需要这样做,以避免模糊的名称错误。
当我得到这个工作,我想复制它到不同的层次,如客户/文章/行等的分析,并作为下一步在srss报告变量声明和用户使用期间进行选择,年等。
就数据类型达成一致,这只是我“继承”它的方式。如果我重新创建数据可能会做不同。 –
当我在Microsoft SQL Server上尝试您的代码时,出现错误:Msg 156,Level 15,State 1,Line 15 关键字'ON'附近的语法错误。 –
感谢这真的接近我需要的东西,现在我有几行null作为值,这我不介意,但也有一些行作为文章号为null,这是进一步分析的问题。 –