SQL Server 2005のピボットテーブルクエリが停止しています。SQL Server 2005ピボットテーブルでカウント値が正しくありません。
は
...今私は、次のピボットクエリを持ってcustomerid productid amount count quarter
---------- --------- ------ ----- -------
9000 20001 5.00 1 Q4
9000 20001 10.00 1 Q5
9000 20002 15.00 1 Q4
9000 20002 20.00 1 Q5
...あなたは今、次のレコードを持つテーブルがある
create table dbo.orders(orderid int primary key, customerid int, productid int, amount money, count int, quarter char(2))
insert into dbo.orders(orderid, customerid, productid, amount, count, quarter) values(1001, 9000, 20001, 5, 1, 'Q4')
insert into dbo.orders(orderid, customerid, productid, amount, count, quarter) values(1002, 9000, 20001, 10, 1, 'Q5')
insert into dbo.orders(orderid, customerid, productid, amount, count, quarter) values(1003, 9000, 20002, 15, 1, 'Q4')
insert into dbo.orders(orderid, customerid, productid, amount, count, quarter) values(1004, 9000, 20002, 20, 1, 'Q5')
... follwing表とデータを考えてみましょう
select *
from
(
select o.customerid, o.productid, o.amount, o.count, o.quarter
from dbo.orders o (nolock)
)
src
pivot
(
sum(amount)
for quarter in([Q4], [Q5])
)piv
この結果は次のようになります。
customerid productid count Q4 Q5
---------- --------- ------ ----- -------
9000 20001 1 5.00 10.00
9000 20002 1 15.00 20.00
問題は私のカウントがオフであることです。結果はこのようになります。
customerid productid count Q4 Q5
---------- --------- ------ ----- -------
9000 20001 2 5.00 10.00
9000 20002 2 15.00 20.00
ピボット値としてカウントを使用するとピボットはproductidと同じです。
私はクエリからカウントを削除し、サブクエリとして計算することができましたが、データベースを2回ヒットします。
誰もピボットを起こしカウントを狂わせる方法を知っていますか?
が、これはあなたがSubquery
のためにしようとしたものですが、ここで私が思い付いたかどう