できればSQL文で作りたいと思っています。
表1
行1 行2
== ==
1 A
1 B
1 C
2 A
2 D
行1で同一の値のものは10個しかないと決まっています。
(つまり行1=1のものは10列まで)
これを次のように表示したいと思っています。
行1 行2 行3 行4
== == == ==
1 A B C
2 A D
Access+SQL*Serverを使っています。このようなViewをつくるSQLが発行できればベスト。関数とか使ってでもなんとかできないでしょうか?
SQLの実行結果のレコードを順番に配列に入れるとかしかいと無理でしょうか?
レコード結果はFirst,Lastを使って先頭と最後だけは取り出せるのですが、2番目~9番目も取り出す関数があったら、それをSQLに組み入れるだけで済むのですが。
どうぞ、よろしくお願いします。m(○)m
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
行と列が通常の呼称と逆ですね
行2の文字コード順に並べるということでよければ
TRANSFORM First(行2)
SELECT 行1
FROM 表1
GROUP BY 行1
PIVOT "行" & DCount("*","表1","行2<='" & [行2] & "' and 行1=" & [行1])+1;
No.3
- 回答日時:
行1も行2もテキスト型なら、
TRANSFORM First(行2) AS 行2の先頭
SELECT 行1
FROM 表1
GROUP BY 行1
PIVOT "行" & DCount("*","表1","行1='" & [行1] & "' And 行2<='" & [行2] & "'")+1;
では。
No.2
- 回答日時:
私はこのような場合、クロス集計クエリーを使いします。
(1)テーブル「表1」に項目「列見出し」を作成します。(テキスト型)
(2)次のファンクションを実行して「列見出し」をセットします。
======================================================
Public Function FNT_列見出し()
Dim DB As Database
Dim R As Recordset
SQL = "SELECT * FROM 表1 ORDER BY 行1, 行2"
Set DB = CurrentDb
Set R = DB.OpenRecordset(SQL, dbOpenDynaset)
If R.EOF = False Then
WK_行1 = R![行1]
cnt = 0
Do Until R.EOF
If WK_行1 = R![行1] Then
cnt = cnt + 1
Else
cnt = 1
WK_行1 = R![行1]
End If
R.Edit
R![列見出し] = "行" & cnt + 1
R.Update
R.MoveNext
Loop
R.Close
End If
End Function
======================================================
(3)次のクロス集計クエリーを表示すると結果が得られます。
==================================================
TRANSFORM First(表1.行2) AS 行2の先頭
SELECT 表1.行1
FROM 表1
GROUP BY 表1.行1
PIVOT 表1.列見出し;
==================================================
以上です。
参考になればうれしいです。
No.1
- 回答日時:
Access上なら
TRANSFORM First(表1.行2) AS 行
SELECT 表1.行1
FROM 表1
GROUP BY 表1.行1
PIVOT 表1.行2;
でクロス集計で似たような感じでできますがこれじゃダメなんですよね。
>先頭と最後だけは取り出せるのですが、2番目~9番目も取り出す関数
SELECT 行1,行2 FROM 表1 ROWNUM <=9
で先頭から9行目まで取得
ありがとうございます。
この方法だと、表1で違うデータの分だけフィールドがついてしまいます。
つくりたいのは、フィールド数は10個と決まっています。なんとかなりませんか?
ROWNUM でも、表1で行1でグループした中からselectしその結果のレコードの2番目とか取りたいという意味なので、これも使えませんでした。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Excel(エクセル) EXCELの「接続」のSQLのコマンド文字列にて、セルから任意の数値を利用したい 2 2023/03/09 16:43
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- SQL Server これをSQL文で出来るでしょうか? 1 2023/03/26 02:16
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Oracle Oracleですがsqlで質問です。 サブクエリ内で番号というカラムで昇順の1レコード目を取得したい 3 2023/05/22 10:02
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- Excel(エクセル) エクセルでIF関数中にIFERROR関数を使いたいのですが???? 5 2022/04/08 13:24
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースファイル(.db)を開...
-
CSVファイルでテキストの改行の...
-
Notion@リレーション値の取得...
-
180g重量版レコードとは? 180...
-
manana というやつで、間違って...
-
Accessを開きなおすとテキスト...
-
テキストボックスにコントロー...
-
構文エラー:演算子がありませ...
-
データベースの勉強 公務員を目...
-
はじめてのAccess 2019 について
-
DBエラーを解決したい
-
ITパスポートについての質問で...
-
マイクロソフトAccessでsqlのas...
-
情報整理するのに、「 Fullfree...
-
レコード数のカウント
-
私はシステム会社に務めている...
-
データベースの選定について 要...
-
ドリームメーカーってどうやっ...
-
Accessのフォームへ、記録者の...
-
エクセル
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
INDIRECT関数の代替方法は?
-
BULK INSERT時のNull許容について
-
【Transact-sql】 where条件、i...
-
Accessの「IIF」に相当するSQL...
-
SQLiteで「UPDATE table1 SET c...
-
Accessで複数(3以上)...
-
自分自身のテーブルを参照して更新
-
sqlite3でrowid以外にid必要で...
-
create tableのフィールド名
-
列を行に表示する方法は?
-
WHERE句で結合。INNER JOINとの...
-
PLSQLのTO_CHARについて
-
WHERE句の速度について
-
SQLの書き方
-
DBの定義のサイズを大きくし過...
-
一部のカラムでdistinctし全て...
-
SQLServerでNULLを挿入したいです
-
SELECT文で、指定カラム以外の...
-
テーブルの列数を調べたい
-
MYSQLで全てのカラムから検索す...
おすすめ情報