次のようなSQLサーバーテーブルにデータがあります。
Slno Revenue Data Loading
1 8989898 10/07/12 Before Load
2 2124124 10/07/12 After Load
両方の値を減算し、結果を「10%」と言うパーセンテージで表示したい
以下を計算するための正しいクエリを手伝ってください
ありがとう
次のようなSQLサーバーテーブルにデータがあります。
Slno Revenue Data Loading
1 8989898 10/07/12 Before Load
2 2124124 10/07/12 After Load
両方の値を減算し、結果を「10%」と言うパーセンテージで表示したい
以下を計算するための正しいクエリを手伝ってください
ありがとう
これはうまくいくかもしれません
Declare @Sample Table
( SNo int,
revenue int,
date datetime,
Loading varchar(20)
)
Insert into @Sample
values
(1, 8989898,'10/07/12','Before Load'),
(2,2124124 ,'10/07/12','After Load')
SELECT
((cast(a.revenue as float) - cast(b.revenue as float))/cast(a.revenue as float))*100.0 AS diff
FROM @Sample a
LEFT OUTER JOIN @Sample b
ON b.Sno = (a.Sno +1)
収益列のデータ型が float の場合は、キャストする必要はありません。編集 :
SELECT
cast(((cast(f.revenue as float) - cast(f2.revenue as float))/cast(f.revenue as float))*100.0 as varchar(max))+'%'
AS diff
FROM @Sample f
LEFT OUTER JOIN @Sample f2
ON f2.Sno = (f.Sno +1)
select convert(varchar,((t.revenue - tt.revenue)*100)/(t.revenue)) +'%' as value
from dbo.Table_1 t
inner join dbo.Table_1 tt on tt.data = t.data and t.loading = 'Before Load' and tt.loading = 'After Load'
これは、単一の日付に対して、ロード前 (およびロード後) に 1 つのみ存在することを前提としています。