【发布时间】:2012-09-30 13:43:25
【问题描述】:
我有一个包含以下列的表格
-
End_date。 -
count_all_transactions. -
count_timeouts。 -
request_key。
现在我需要为两个不同的日期计算percentagetimeout 并同时显示它们。我已经建立了我的查询。
我的查询如下:
Select PercentageTimeout ,
PerTimeout,
Transaction
From
(
select
T.COUNT_ALL_TRANSACTIONS as Total,
T.END_DATE as DT1,
T.COUNT_TIMEOUTS as Timeouts,
round (((T.COUNT_TIMEOUTS / T.COUNT_ALL_TRANSACTIONS) * 100)
,2) as PercentageTimeout,
R.INTERFACE_NAME as Transaction
from rpt_timeout T, dim_request R
where
T.REQUEST_KEY = R.REQUEST_KEY
AND
T.END_DATE='27 AUG 2012'
)
left outer join
(
select T1.COUNT_ALL_TRANSACTIONS as Total1,
T1.END_DATE as DT2,
T1.COUNT_TIMEOUTS as Timeouts1,
round (((T1.COUNT_TIMEOUTS / T1.COUNT_ALL_TRANSACTIONS) * 100)
,2) as PerTimeout,
R1.INTERFACE_NAME as Transaction1
from rpt_timeout T1, dim_request R1
where T1.REQUEST_KEY = R1.REQUEST_KEY
AND T1.END_DATE='20 AUG 2012'
) on Transaction = Transaction1;
这个查询给了我正确的结果,但我正在努力解决的是我需要列的名称作为该表中相应的 END_DATE,即: 我的输出应该是这样的
27-AUG-2012 20-AUG-2012 Transaction
0.28 0.1 Qpay
0.09 0.06 Payment
【问题讨论】:
-
您能否发布您的查询当前产生的输出,以便我们获得“对数据的感觉”?
-
我目前的输出是:PercentageTimeout PerTimeout Transaction 0.28 0.1 Qpay 0.09 0.06 Payment 我需要的是 END_DATE 列的值显示为我的列名,而不是 PercentageTimeout 和 PerTimeout。我不知道如何实现这一目标
-
我发布的查询我没有选择 end_date 但 end_date 的值是 27-AUG-2012 和 20-AUG-2012
-
@user1733739 如果您需要 Oracle 的动态数据透视解决方案 - 那么您可以查看 to this link
-
@user1733739,你如何决定使用哪两个日期?这些是常量、参数还是什么?