- PR -

datagridで行の値を入れ替えたい

投稿者投稿内容
じいじ
大ベテラン
会議室デビュー日: 2003/11/11
投稿数: 223
投稿日時: 2004-02-09 12:23
Jittaさんへ
しばらくインターネットのない環境にいたので報告が遅れてしまいました。
その間SQL関係の本を読んでいました。

以前と違うのは、マスターテーブル(T県名)にIDを付けました。

T県名
----------------------
ID 県名
01 東京都
02 神奈川県
03 静岡県
04 愛知県
: :
----------------------

T顧客
----------------------------
ID 氏名 県ID ・・・・・・
001 じいじ 01
002 □▲ 02
003 ○× 02
004 △○ 03
: : :
----------------------------  とします。

ここで、Jittaさんのコードを元に

SELECT * FROM T県名
LEFT JOIN(SELECT 県ID,COUNT(県ID) AS cnt FROM T顧客 GROUP BY 県ID) AS dt
ON T県名.ID = dt.県ID
ORDER BY 4 DESC,1

とやった結果が
---------------------------------------
ID 県名 県ID cnt
02 神奈川県 02 2
01 東京都 01 1
03 静岡県 03 1
04 愛知県 null null
: : : :
--------------------------------------- でした。

このあとはまだやっていませんが、コンボボックスのDataSouceとDataMemberを設定すればできると思います。nullが気になりますけど・・・・
IDを加えたので他の方法もあると思いますが、長い間ありがとうございました。

ついでで済みません
テーブルを表示するときにスペースが表示できないのですが、どうやるのでしょうか?
TomScissors
ベテラン
会議室デビュー日: 2003/06/05
投稿数: 79
投稿日時: 2004-02-09 12:33
> ところで、「あの〜 初心者なんですけど・・・・」は、どれにたいしてでしょう?
>申し訳ないですが、「何がわからない」のか、「わからない」/「忘れている」のです。
>そういう意味で、初心者の方の質問はとても参考になるのです。

これに対しての回答は?
じいじ
大ベテラン
会議室デビュー日: 2003/11/11
投稿数: 223
投稿日時: 2004-02-09 12:49
SQL文は、はっきり言ってSELECT 文ぐらいしか使ったことがありませんでした。
Jittaさんのコードを見て、知らないキーワードがたくさんあるし、SELECT 文が2つもある・・・・等から、びっくりしてしまったのです。

SQL 関係の本を繰り返し読んだので、だいぶ分かってきました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-09 13:13
引用:

じいじさんの書き込み (2004-02-09 12:23) より:

ついでで済みません
テーブルを表示するときにスペースが表示できないのですが、どうやるのでしょうか?


 これは「無選択状態」のための「スペース」でしょうか?それならばどこかにスレッドがあったのですが…。ComboBoxに表示するために、一度DataTableに出すと思いますが、そのDataTableの1行目にInsertします。

 データベースは「順序」がありませんが、.NET F/WのDataTableには「行順序」がありますので(^^;
じいじ
大ベテラン
会議室デビュー日: 2003/11/11
投稿数: 223
投稿日時: 2004-02-09 13:34
Jittaさん 言葉足らずで済みません。

 会議室の本文を作成しているときは、ワープロ感覚でスペースも表示されますが、プレビューをするとスペースは1個分しか表示されないようで、テーブルの内容をきれいに表示することができないのです。
 スレッドの2番目で私が示した図をJittaさんが直してくださいましたが、どうやるのでしょうか?

スレッドの内容が標題と全く違ってきてしまい済みません。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-02-09 15:16
引用:

じいじさんの書き込み (2004-02-09 13:34) より:
Jittaさん 言葉足らずで済みません。

 会議室の本文を作成しているときは、ワープロ感覚でスペースも表示されますが、プレビューをするとスペースは1個分しか表示されないようで、テーブルの内容をきれいに表示することができないのです。
 スレッドの2番目で私が示した図をJittaさんが直してくださいましたが、どうやるのでしょうか?

スレッドの内容が標題と全く違ってきてしまい済みません。




この会議室のFAQを一度お読みになられてはいかがでしょうか。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-09 15:33
[quote]------------------------------
じいじさんの書き込み (2004-02-09 13:34) より:

 会議室の本文を作成しているときは、ワープロ感覚でスペースも表示されますが、プレビューをするとスペースは1個分しか表示されないようで、テーブルの内容をきれいに表示することができないのです。
------------------------------[/quote]
 私がやったのは「[code][/code]で囲む」です。今回は「BBコードを使わない」設定にしたので、これのタグがそのまま表示されます。

 スペースが1個しか表示されないのはHTMLの仕様で、半角スペース、タブ、リターンコードなどの「空白文字」が複数続くと、「1つのスペース」に置き換えられます。

 つまり、「全角スペース」はこの制限に入らないので、「全角スペース」で整形するという手もあります。

T顧客
----------------------------
ID  氏名   県ID ・・・・・・
001 じいじ 01
002 □▲  02
003 ○×  02
004 △○  03
:   :    :
----------------------------

しまった。quoteもそのまま表示された(^^;

[ メッセージ編集済み 編集者: Jitta 編集日時 2004-02-09 15:34 ]
じいじ
大ベテラン
会議室デビュー日: 2003/11/11
投稿数: 223
投稿日時: 2004-02-09 16:50
空白は全角で入力すればよかったのですね。ありがとうございました。

前に示したSQL 文はAccessのSQL 文らしいです。(はっきり言って分かりません)

私が使っているVB.NET+ADO.NETのクエリビルダで同じように作成しようとすると、クエリビルダの中で実行するとエラーになりました。そこで次のようにしました。

コード:
SELECT T顧客.県名ID, T県名.県名, COUNT(T顧客.県名ID) AS cnt
FROM T顧客 INNER JOIN T県名 ON T顧客.県名ID = T県名.県名ID
GROUP BY T顧客.県名ID, T県名.県名
ORDER BY COUNT(T顧客.県名ID) DESC, T顧客.県名ID
    --------------------
        ^ ここを cnt とするとクエリビルダでエラーになります



これで
---------------------------------
県名ID   県名    cnt
02    神奈川県    2
01    東京都     1
03    静岡県     1
04    愛知県    null
---------------------------------

となり、コンボボックスでの表示もできました。本当にいろいろありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)