2012-10-09 64 views
0

我有2個表中有類似的數據,我需要比較一個表和其他日期相等的值。根據2個表格之一的日期比較2個表格中的值?

實施例的表:

CREATE TABLE [data].[ProfileReconciliation] (
[ProfileName] varchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , 
[OriginalFeedDate] datetime NOT NULL , 
[AggregationDate] datetime NOT NULL , 
[TotalDescription] varchar(200) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , 
[TotalSalesAmount] decimal(18,2) NOT NULL , 
[LoadKey] int NULL 
) 
ON [DATA] 
GO 

CREATE TABLE [data].[Aggregation] (
[ColumnName] varchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , 
[dataDate] date, 
[profileDate] datetime , 
[aggregationType] varchar(200) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , 
[dataValue] decimal(18,2) NOT NULL , 

) 
ON [DATA] 
GO 

所以,在AggregationdataValue需要進行比較,以在ProfileReconciliationTotalSalesAmountAggregation表中的dataDate表與ProfileReconciliation表中的AggregationDate相匹配。 ProfileReconciliation表只包含來自每日供稿的數據,因此我們只需將ProfileReconciliation中的日期與Aggregation表進行比較。我需要指出天氣的每個表的值是相等的,如果不是,我需要顯示一個標誌表明如此。我首先從Aggregation表中選擇dataDate在AggregationDate中的數據。我顯然必須投下AggregationDate。我只是不知道該在哪裏接下來或者最好的方法是什麼。

示例數據: 從ProfileReconciliation表

OPDCost 2012-10-08 17:43:51.000 2012-10-07 00:00:00.000 SUM(Total_Net_Cost_Amt) 21323923.00 5307 

OPDS 2012-10-08 17:43:51.000 2012-10-07 00:00:00.000 SUM(Total_Net_Sales_Amt) 70753228.00 5307 

從彙總表:

SPVData.fact.DayStoreProdCost 2012-10-07 2012-10-09 09:06:20.9167944  20970788.131400 
SPVData.fact.DayStoreProdExtra 2012-10-07  2012-10-09 09:03:19.1558724  70642458.910000 

因此,大家可以看到金額不匹配,所以我們wwould希望德的結果看起來像這樣:

**ProfileName Date      ProfileAmount AggregationAmount Equal** 
OPDCost  2012-10-07 00:00:00.000 21323923.00 20970788.13   0 
OPDS   2012-10-07 00:00:00.000 70753228.00 70642458.91   0 
+2

請顯示樣本數據和期望的結果。字問題提醒人們學校。 –

回答

1
Select p.ProfileName, p.AggregationDate, 
p.TotalSalesAmount as ProfileAmount, a.DataValue as AggregationAmount, 
Case When p.SalesAmount <> a.DataValue Then 1 
else 0 
end as Equal 
From Aggregation a 
Inner Join ProfileReconcilation p On Convert(Date,p.AggregationDate) = a.DataDate 

如果我理解正確的話,我不知道我有...

不知道轉換是必要要麼,從你的例子看起來像你的日期時間中有一個數據無妨。