3

次のような列を持つテーブルがあります。

          Cost     Rate

          Repair   12
          Repair   223
          Wear     1000    
          Wear     666
          Fuel     500
          Repair   600
          Fuel     450
          Wear     400

そして、このデータを列(修理、摩耗、燃料)として次のようにします。

         Repair    Wear   Fuel
           825     2066    950

MS Access クエリを使用してこれを行うにはどうすればよいですか?

4

5 に答える 5

5

これにはかなり厄介な従来の SQL ソリューションがありますが、このページを読んで、MS Access にはTRANSFORM ... PIVOTステートメントがあるという事実に気づきました。これを行うには、おそらく調べて使用する必要があります。

確かではありませんが、次のようになります。

TRANSFORM Sum([Items].[Rate]) AS SumOfRate 
SELECT [Items].[Costs] 
FROM Items 
GROUP BY [Items].[Costs] 
PIVOT Format([Items].[Costs]);

そして、それはこれよりもファンシーになる可能性があります。例えば

PIVOT Format([Items].[month],"mmm") In ("Jan","Feb",...,"Nov","Dec");
于 2009-06-27T07:15:01.917 に答える
3

テストされていませんが

SELECT
(SELECT  sum(rate)  from mytable where cost = 'Repair') AS Repair ,
(SELECT  sum(rate) from mytable where cost = 'Wear') AS Wear,
(SELECT  sum(rate) from mytable wherecost = 'Fuel') AS Fuel
于 2009-06-27T06:54:07.060 に答える
2

このクエリを使用できます

select 
sum(select rate from yourtable where cost = 'Repair') "Repair", 
sum(select rate from yourtable where cost = 'Wear') "Wear", 
sum(select rate from yourtable where cost = 'Fuel') "Fuel" 
from dual

オラクルを使用している場合

それ以外の場合は、他のデータベース エンジンの場合は、これの直前に簡単なステートメントを作成できます。

create table dual (x char)

insert into dual values "x"
于 2009-06-27T06:54:53.923 に答える
2

クロス集計クエリを使用してこれを行うことができます。[アクセス クエリ] ウィンドウにはウィザードがあり、ウィザードを使用してクエリを作成できます。[新しいクエリ] ボタンをクリックして、クロス集計クエリ ウィザードを選択するだけです。

于 2009-07-13T04:10:07.330 に答える
1

これにより、必要なデータが取得されます。

select cost, sum(rate)

from mytable

group by cost

そして、好きな方法で提示できます。

于 2009-06-27T06:44:22.913 に答える