使用しているのはSQL Server2000で、
以下のような各PCにインストールされているソフトウェア一覧の
テーブルから
コンピュータ名 | ソフトウェア名
----------------------------------
コンピュータ1 | ソフト1
コンピュータ1 | ソフト2
コンピュータ1 | ソフト3
コンピュータ2 | ソフト2
コンピュータ2 | ソフト4
・ ・
・ ・
以下ののようなどのPCにある特定のソフトウェアがインストールされているかを
確認するための表を作成したいのですが、
なにかよい方法はないでしょうか?
できればSQLで作成したいとは思っています。
ご教授よろしくお願いいたします。
コンピュータ名 | ソフト1 | ソフト2 | ソフト4
----------------------------------------------
コンピュータ1 | 1 | 1 |
コンピュータ2 | | 1 | 1
・ ・ ・ ・
・ ・ ・ ・
No.2
- 回答日時:
こういう事ですか?
(泥臭いやり方だけど (^^; )
select
a.コンピュータ名 as コンピュータ名,
b.件数 as ソフト1,
c.件数 as ソフト2,
d.件数 as ソフト3,
e.件数 as ソフト4
from
(
select
コンピュータ名
from
テーブル
group by
コンピュータ名
) a
(
select
コンピュータ名,
count(ソフト1) as 件数
from
テーブル
where
ソフトウェア名 = 'ソフト1'
group by
コンピュータ名
) b
(
select
コンピュータ名,
count(ソフト2) as 件数
from
テーブル
where
ソフトウェア名 = 'ソフト12'
group by
コンピュータ名
) c
(
select
コンピュータ名,
count(ソフト3) as 件数
from
テーブル
where
ソフトウェア名 = 'ソフト3'
group by
コンピュータ名
) d
(
select
コンピュータ名,
count(ソフト4) as 件数
from
テーブル
where
ソフトウェア名 = 'ソフト4'
group by
コンピュータ名
) e
where
a.コンピュータ名 = b.コンピュータ名
and
a.コンピュータ名 = c.コンピュータ名
and
a.コンピュータ名 = d.コンピュータ名
and
a.コンピュータ名 = e.コンピュータ名
;
この回答への補足
回答ありがとうございます。
実行してみましたが、
where句で指定したソフト全てがインストールされている
コンピュータの結果しか返ってきませんでした。
No.3ベストアンサー
- 回答日時:
クロス集計のようなことをやりたいのですよね?
select
pc_name,
sum(case when soft_name='soft1' then 1 else 0 end) as soft1,
sum(case when soft_name='soft2' then 1 else 0 end) as soft2,
sum(case when soft_name='soft3' then 1 else 0 end) as soft3,
sum(case when soft_name='soft4' then 1 else 0 end) as soft4,
sum(case when soft_name='soft5' then 1 else 0 end) as soft5,
sum(case when soft_name='soft6' then 1 else 0 end) as soft6
from t1
group by pc_name
回答ありがとうございます。
>クロス集計のようなことをやりたいのですよね?
そのとおりで、教えていただいたSQLを実行した
ところ無事に欲しい結果を得る事が出来ました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ビデオカード・サウンドカード ソフト音源は、インストールしたコンピュータによって音質が異なるのか 4 2022/09/22 11:38
- Windows 10 パソコンの操作ができません。。。 4 2022/06/02 18:38
- Wi-Fi・無線LAN アマチュア無線家の方々にお尋ねします。 私は約37年間のWRT期間を置きまして、この度、HF, VH 1 2022/10/07 01:01
- Java Java 石取りゲーム 3 2023/02/02 15:46
- iPhone(アイフォーン) iPhoneとWindows10のパソコンが、接続されません。 6 2022/03/27 19:20
- その他(占い・超常現象) 飛んだ妄想話なので笑いながら聞いてください。前提として、この世界はコンピュータの中の確率が高いです。 1 2023/08/23 02:55
- ドライブ・ストレージ 「3は「1+1+1」です。」とコンピュータが認識する用語って何ですか? 2 2022/07/17 02:33
- ドメイン・サーバー・クラウドサービス ADドメイン参加パソコンのコンピュータ名を変更 2 2022/08/17 11:12
- 日本株 囲碁将棋はコンピュータの方が強いようですが株取引で市場から稼げるコンピュータはないのでしょうかよろし 7 2022/05/27 03:39
- LINE アップルウオッチへのLINEログイン通知について 1 2022/10/07 17:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
これをSQL文で出来るでしょうか?
-
SQLサーバで和暦から西暦に変換...
-
sqlで、600行あるテーブルを100...
-
SQLサーバー接続 特定のPCがWin...
-
<SQL>重複しているデータの場合...
-
ACCESS2007 フォーム 「バリア...
-
【SQLサーバ】float型における...
-
サーバー破壊
-
SQLのエラー(~付近に不適切な...
-
SQL Serverのテーブル作成のエラー
-
SQLて何ですか!
-
SQLServer 日付が直前のレコー...
-
SQLCMDにて教えていただきたい...
-
Visuaal Studio Community 2022...
-
AccessのInsertクエリのあとつ...
-
ACCESSで複数テーブルを結合し...
-
【VB.NET】日付型の列にNULLを...
-
sqlserverで同一キー単位で金額...
-
sqlserverで集計結果をUPDATEし...
-
ACCESSで3ファイルを結合して、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLサーバー接続 特定のPCがWin...
-
SQL Date型の列から年月だけを...
-
SQLのエラー(~付近に不適切な...
-
ACCESS2007 フォーム 「バリア...
-
Accessの重複なしのカウントの...
-
<SQL>重複しているデータの場合...
-
sqlserverで集計結果をUPDATEし...
-
SQLサーバで和暦から西暦に変換...
-
【SQLサーバ】float型における...
-
【VB.NET】日付型の列にNULLを...
-
BULK INSERT時のNull許容について
-
sqlで、600行あるテーブルを100...
-
Visuaal Studio Community 2022...
-
自己相関サブクエリと自己結合...
-
SQL文 複数実行
-
AccessのInsertクエリのあとつ...
-
DBのテーブルの設計ができず困...
-
これをSQL文で出来るでしょうか?
-
[SQLServer] テーブル名からカ...
-
Access2021 「ISNULL関数には引...
おすすめ情報