私はこのようなストアドプロシージャを持っています
ALTER procedure [dbo].[performance]
@startdate nvarchar(100),
@enddate nvarchar(100)
as begin
declare @date1 nvarchar(100) = convert(varchar, @startdate+' 00:00:00.000', 120)
declare @date2 nvarchar(100) = convert(varchar, @enddate+' 23:59:59.000', 120)
set NOCOUNT on;
select
l.LocName, v.Vtype,
SUM(convert(numeric(18, 2),
DATEDIFF(MI, t.DelDate, t.Paydate))) as TotalDiff,
[dbo].[testfunctionstacknew](CONVERT(decimal(10,1), AVG( CONVERT(NUMERIC(18,2), DATEDIFF(SS,t.Paydate,t.DelDate) ) ))) as Average
from
Transaction_tbl t
left join
VType_tbl v on t.vtid = v.vtid
left join
Location_tbl l on t.Locid = l.Locid
where
t.Locid in (select t1.Locid from Transaction_tbl t1)
and dtime between @date1 and @date2
and Status = 5
group by
v.Vtype, l.LocName, l.Locid
order by
l.Locid
end
私はこのように出ています:
locName Vtype TotalDiff Average
Address Normal 15 00:10:01
Adress vip 18 00:08:01
Address VVIP 9 00:04:00
Address Pass 20 00:15:00
Goldsouk normal 45 00:18:08
Goldsouk vip 17 00:11:36
Fashion vip 78 00:35:25
Fashion VVip 2 00:01:00
しかし、私は別のモデルで出力が必要です:私はこのような出力を期待していました:
LocName Normal Vip VVip Pass Staff
Address 00:10:01 00:08:01 00:04:00 0 0
GoldSouck 00:18:08 00:11:36 0 0 0
Fashion 0 00:35:25 00:01:00 0 0
ピボットを使用する必要があることを知っているように出力するには..しかし、これを使用する方法がわかりませんか? 誰かが知っているなら、私が見つけるのを手伝ってください..私は私のvtypeをハードコードすることはできません..実際のvtypeは動的です.それはVtypeテーブルから来ています