私は自分の苦境に対するよりエレガントな (おそらくより速い) 解決策を探しています。
通話トラフィック テーブルに関するレポートを作成する次のクエリがあります。
SELECT 'Tariff1' as [Tariff], Count([Number]) as [Number of calls] ,sum(convert(bigint,[Seconds]))/60 as [Minutes], sum([CustomerCost]) as [Customer Cost], sum([WholesaleCost]) as [WholesaleCost]
FROM [MarchCalls]
where [AccNo] in (select [accno] from [Tariffs] where [Tariff] = 'Tariff1')
union
SELECT 'Tariff2' as [Tariff], Count([Number]) as [Number of calls] ,sum(convert(bigint,[Seconds]))/60 as [Minutes], sum([CustomerCost]) as [Customer Cost], sum([WholesaleCost]) as [WholesaleCost]
FROM [MarchCalls]
where [AccNo] in (select [accno] from [Tariffs] where [Tariff] = 'Tariff2')
union
SELECT 'Tariff3' as [Tariff], Count([Number]) as [Number of calls] ,sum(convert(bigint,[Seconds]))/60 as [Minutes], sum([CustomerCost]) as [Customer Cost], sum([WholesaleCost]) as [WholesaleCost]
FROM [MarchCalls]
where [AccNo] in (select [accno] from [Tariffs] where [Tariff] = 'Tariff3')
union
SELECT 'Total' as [Tariff], Count([Number]) as [Number of calls] ,sum(convert(bigint,[Seconds]))/60 as [Minutes], sum([CustomerCost]) as [Customer Cost], sum([WholesaleCost]) as [WholesaleCost]
FROM [MarchCalls]
いくつかのポイント: Convert(bigint) は、レコードの量とその中の数値のために必要です 返されるレコードセットは、この形式のままでなければなりません このデータ (およびデータベース) は、厳密に読み取り専用 SQL Server 2012 です
このクエリは毎月末に時間がかかり、時間を短縮する必要があります
これを合理化するのを手伝ってくれる人はいますか?