SQL質疑応答スレ
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
03/06/30 20:46ID:m1O8kdcm0153NAME IS NULL
04/04/13 11:23ID:???サブクエリを覚えて嬉しいんだYO
0154NAME IS NULL
04/04/14 00:58ID:sNa3vHBTid INTEGER
keyword_id INTEGER
name VARCHAR(255)
tbl2
keyword_id INTEGER
keyword VARCHAR(255)
のようなテーブルがあるとします。
tbl1.keyword_idからtbl2.keywordを取得しtbl1.nameに入れて更新したいのですが、
プログラム側でループ回して1つづつSELECT,UPDATEする以外に、
何か良い方法はないでしょうか?
0155NAME IS NULL
04/04/14 08:00ID:???tbl1.name = tbl2.keyword ってことなら、
UPDATE tbl1 SET name=tbl2.keyword FROM tbl2 WHERE tbl1.keyword_id=tbl2.keyword_id;
で、できる。
しっかし、こういうメンテみたいな事を、日常的に発生するのか?
メンテとか仕様変更程度なら、プログラム側でループさせてもいいような気もする。
0156NAME IS NULL
04/04/14 09:16ID:goCOTvMk>複数のカラムを合わせたモノを1つのキーとして扱うという感じでしょうか?
これ以外の複合キーってあるんかな?
0157NAME IS NULL
04/04/15 14:44ID:kKTGTXIq1
2
3
:
と出力されるような関数または技はありますか?
0158NAME IS NULL
04/04/15 17:01ID:jvLa74JA20050 200 50
20000 100 50
30000 100 00
このような感じのテーブルから、項目Aが項目B+項目Cの形になっている物を
取得したいのですが。
それと、日付型との比較の仕方も教えてもらえないでしょうか。
0159NAME IS NULL
04/04/15 17:30ID:???SELECT * FROM t1 WHERE 項目A = 項目B||項目C;
日付型との比較って?
0160NAME IS NULL
04/04/15 17:47ID:jvLa74JAできました。ありがとうございます。
あと、二つ目の質問の方は
項目D(日付/時刻型)
2004/04/01 12:00:00
2004/05/01 12:00:00
2004/04/15 12:00:00
このようなテーブルから、今日の日付よりも大きい物を取得したいのですが。
0161NAME IS NULL
04/04/15 18:33ID:???WHERE CAST(項目D AS DATE) > CURRENT_DATE;
0162NAME IS NULL
04/04/16 10:53ID:dIVUU8kIありがとうございます。
あと、項目Dが1月以上前の日付になっているデータを取り出すやり方も教えて貰えないでしょうか。
0163NAME IS NULL
04/04/16 13:44ID:J3JWWPjP「こういう方法でここまで調べて、こんな状況まではたどり着いたけど、
ここから先はどうすればいいのか」
みたいな感じでさ。
0164NAME IS NULL
04/04/16 14:25ID:???たぶん日本語の勉強も必要だな。ヒントだけ。
WHERE CAST(項目D AS DATE) < CURRENT_DATE - 一ヶ月 ;
0165NAME IS NULL
04/04/18 04:34ID:???ALL OUTER JOIN をやるにはどうしますか?
0166NAME IS NULL
04/04/20 00:37ID:???8i以前ってことか?
左外部結合するSQL
UNION
右外部結合するSQL
0167NAME IS NULL
04/04/20 01:09ID:???FULL OUTER JOIN じゃないのか?
0168NAME IS NULL
04/04/23 03:24ID:???0169NAME IS NULL
04/04/23 11:12ID:BroRaDV40170NAME IS NULL
04/04/23 12:11ID:???0171NAME IS NULL
04/04/23 15:42ID:???0172NAME IS NULL
04/04/23 16:55ID:???INSERTしておいてROLLBACKする方がいいなw
0173NAME IS NULL
04/04/23 17:24ID:???ループ処理したいなw
0174NAME IS NULL
04/04/23 17:28ID:???0175NAME IS NULL
04/04/25 02:15ID:OEZtU36xVALUE_A(PK)GROUP_ID(PK)VALUE_B(PK)
------------------------------------
111
212
314
21
22
23
24
25
31
32
41
42
43
このようなデータがあるときに、TAB_Aと同じ組み合わせを持つグループを
TAB_Bの中から探すにはどうすればいいでしょうか?この場合はGROUP_ID=4
が正解です。なお、TAB_Bの中でひとつのグループが持つレコード数はTAB_A
の行数と等しいとは限りません(見ればわかると思いますが)。
Oracle 8iですが、副問い合わせをいくつか使ってそれらしいSQL文はできたの
ですが、もっとスマートな方法はないもんかと思いまして。
0176NAME IS NULL
04/04/25 02:16ID:OEZtU36x0177NAME IS NULL
04/04/25 02:22ID:OEZtU36xTAB_A
VALUE_A(PK)
-----------
1
2
3
TAB_B
GROUP_ID(PK) VALUE_B(PK)
------------ -----------
1 1
1 2
1 4
2 1
2 2
2 3
2 4
2 5
3 1
3 2
4 1
4 2
4 3
0178NAME IS NULL
04/04/25 16:07ID:???SELECT * FROM (SELECT group_id FROM tab_b GROUP BY group_id HAVING COUNT(group_id)=(SELECT COUNT(*) FROM tab_a))AS bar
WHERE NOT EXISTS ( SELECT * FROM tab_b WHERE NOT EXISTS(SELECT * FROM tab_a WHERE value_a=tab_b.value_b) AND group_id=bar.groupid);
tab_aと同じ行数を持つtab_b.group_idを求めて、tab_a.value_aにないvalue_bを持つ行を弾いた感じです。
0179NAME IS NULL
04/04/26 21:30ID:9BxX3SKmid|value1
--+------
1|aaaa
2|bbbb
3|cccc
table bが以下のようになっているとします。
id|value2
--+------
1|hhhh
1|iiii
2|jjjj
4|kkkk
これを、
id|value1|value3
--+------+---------
1|aaaa |hhhh iiii
2|bbbb |jjjj
3|cccc |
のような形でtable bのvalue2をスペース区切りで文字列連結してSQL一文でやりたいのですが、
どなたか教えていただけないでしょうか。
DBはpostgresqlです。
0180NAME IS NULL
04/04/26 23:08ID:hVx47epUテーブル名の前にユーザー名をつけないとSELECTできません。
テーブル名だけでSELECTできるようにするには、どのように設定したらよいでしょうか?
Enterprise Managerとかで設定できそうな気がするのですが、わかりません。
どうぞよろしくお願いいたします
0181180
04/04/26 23:36ID:hVx47epU0182NAME IS NULL
04/04/26 23:42ID:???list()のような集約関数がないとむりぽ。
0183179
04/04/27 00:00ID:ZINPSHoZこれ、むりぽなんですか?
よく使われそうな気がするんですけど。。
0184NAME IS NULL
04/04/27 05:06ID:???一般的にRDBでは動的にカラムを増やすようなことしない。
やるとすれば↓のような結果をもらってクライアント側で処理する
id|value1|value3
--+------+---------
1|aaaa |hhhh
1|aaaa |iiii
2|bbbb |jjjj
3|cccc |
0185NAME IS NULL
04/04/27 20:21ID:???0186NAME IS NULL
04/04/29 13:23ID:???0187NAME IS NULL
04/05/05 18:22ID:???左右が逆かもしれないけど...
SELECT GROUP_ID
FROM TAB_A LEFT JOIN TAB_B ON VALUE_A = VALUE_B
GROUP BY GROUP_ID
HAVING COUNT(*) = (SELECT COUNT(*) FROM TAB_A)
AND COUNT(VALUE_A) = (SELECT COUNT(*) FROM TAB_A);
0188NAME IS NULL
04/05/05 22:27ID:???まぁ、趣味は人それぞれだからな・・・
0189NAME IS NULL
04/05/05 23:55ID:???で、バックアップしたデータを突っ込んでいるテーブルのバックアップはどうするんだ?
0190NAME IS NULL
04/05/08 01:52ID:PG+kCctRまず、次の二つのテーブルがあるとします。
・2chねらーテーブル
ユーザID(PK)
・スレ立てテーブル
ユーザID(PK)
スレ立て日付
クソスレフラグ(デフォルト = '0')
2chが会員制という前提ですが、2chねらーテーブルには2ch会員全ユーザが、
スレ立てテーブルには、スレを立てたユーザIDとスレ立て日付が。
また、立てたスレがクソスレと認定されれば、クソスレフラグに'1'が入るものとします。
この2テーブルから、 優良2chねらーを抽出したいのです。
優良の定義とは・・・
・クソスレを立てていない(クソスレフラグ = '0')
・そもそもスレを立てたことがない(スレ立てテーブルに該当IDなし)
というものです。
これを、一回のSQLで実現させる方法はないでしょうか?
よろしくお願いします。
0191NAME IS NULL
04/05/08 03:11ID:???update スレ立て set クソスレフラグ=0 where ユーザID='漏れ';
select ユーザID from 2chねら
where ユーザID not in (select ユーザID from スレ立て where クソスレフラグ=1);
0192NAME IS NULL
04/05/08 07:32ID:???update文は関係ないだろ。あと、INよりEXISTSの方が高速。
SELECT ユーザID FROM 2chねらー
WHERE NOT EXISTS (SELECT * FROM スレ立て WHERE スレ立て.ユーザID=2chねらー.ユーザID AND クソスレフラグ=1);
0193NAME IS NULL
04/05/09 21:12ID:???SELECT * FROM 2chねらーテーブル
WHERE ユーザID NOT IN
(SELECT ユーザID FROM スレ立てテーブル WHERE クソスレフラグ<>'0')
0194NAME IS NULL
04/05/10 11:34ID:???0195190
04/05/14 02:02ID:OjLux1Gu皆さんの回答を参考に、なんとか問題解決出来ました。
普段は select なんちゃら from なんちゃら where なんちゃら order by なんちゃら
この程度のSQLで実現できる、単純業務に従事する漏れ。
これじゃ、いつまでたってもスキルアップは望めませんな・・・
もっと勉強しないといかんなぁ。
0196NAME IS NULL
04/05/14 11:52ID:S2RlCOwqテーブル1 フィールド(ID,ID_NAME)pkey ID
テーブル2 フィールド(ID,CD,CD_NAME)pkey CD
テーブル3 フィールド(CD,NO,NO_NAME)pkey NO
の3テーブルがあります。
テーブル1にIDが存在してテーブル2にID存在しないパターン
テーブル2にCDが存在してテーブル3にCD存在しないパターン
テーブル3にCDが存在してテーブル2にCD存在しないパターン
のデータを選択するにはどうしたらよいのでしょうか?
イメージとしては
テーブル1
-------------------
ID | ID_NAME |
-------------------
1 うに1
2 うに2
テーブル2
--------------------------
ID | CD | CD_NAME |
--------------------------
1 1 かに1
1 2 かに2
3 3 かに3
テーブル3
--------------------------
CD | NO | NO_NAME |
--------------------------
1 1 むに1
3 2 むに2
4 3 むに3
実行結果
---------------------------------------------------------
ID | CD | NO | ID_NAME | CD_NAME | NO_NAME |
---------------------------------------------------------
1 2 うに1 かに2
3 3 かに3 むに2
3 むに3
2 うに2
としたいのですがどうしたらよいのでしょうか?
お願いします、教えて下さい!
0197196
04/05/14 11:59ID:S2RlCOwqわかり難くて申し訳ないですが、以下のような感じです。
テーブル1
-------------------
ID | ID_NAME |
-------------------
1, うに1
2, うに2
テーブル2
--------------------------
ID | CD | CD_NAME |
--------------------------
1, 1, かに1
1, 2, かに2
3, 3, かに3
テーブル3
--------------------------
CD | NO | NO_NAME |
--------------------------
1, 1, むに1
3, 2, むに2
4, 3, むに3
実行結果
---------------------------------------------------------
ID | CD | NO | ID_NAME | CD_NAME | NO_NAME |
---------------------------------------------------------
1, 2, '', うに1, かに2, ''
'', 3, 3, '', かに3, むに2
'', '', 3, '', '', むに3
2, '', '', うに2 '', ''
AAの偉大さを思い知らされました・・・
0198NAME IS NULL
04/05/14 12:57ID:nNcVZ+edテーブル名:デジコ
キャラ 萌え度 キタ回数
--------------------------
A 6 11
B 7 12
テーブル名:プチコ
キャラ 作画枚数
--------------------------
A 100
キャラ 萌え度 キタ回数 作画枚数
A 6 11 100
B 7 12 0(NULLではない)
をだすようなSQL文おしえてください。
0199NAME IS NULL
04/05/14 13:08ID:???>テーブル1にIDが存在してテーブル2にID存在しないパターン
SELECT * FROM テーブル1 WHERE NOT EXISTS (SELECT * FROM テーブル2 WHERE テーブル2.ID=テーブル1.ID);
>テーブル2にCDが存在してテーブル3にCD存在しないパターン
>テーブル3にCDが存在してテーブル2にCD存在しないパターン
上のSQLを参考にして考えれ。要領は同じ。
0200NAME IS NULL
04/05/14 13:17ID:???SELECT キャラ,萌え度,キタ回数,coalesce(作画枚数,0) from デジコ LEFT OUTER JOIN プチコ Using(キャラ);
0201NAME IS NULL
04/05/16 18:29ID:e1RqkHtX良いですか?
select a,b
from (a left join b) as table3
↑省略しすぎ(汗
としてもエラーになってしまうし困っています。
ちなみに.MDBです。
よろしくお願いします。
0202NAME IS NULL
04/05/17 02:08ID:???0203NAME IS NULL
04/05/17 09:19ID:???Oracleにはdate_partって関数はないのか?
0204NAME IS NULL
04/05/17 11:42ID:???( )必要だっけ?
0205NAME IS NULL
04/05/17 19:20ID:n2kYxM4xいや全く必要ない。
で回答はどこ?
0206NAME IS NULL
04/05/17 19:33ID:???0207NAME IS NULL
04/05/17 21:26ID:n2kYxM4xDB板はスレ違いかも知れないと今気づきましたが、
気づかないフリで説明します。
VB.netでは複数のテーブルをJOINするとtableという自動で仮名がつきます。
全く同じデータセットに同じテーブル名(table)をいれると
???としたエラーが炸裂するのでどうしてもJOIN後にテーブル名を
付けたいんです。こんなケースはDB単独では珍しいらしく手持ちの
SQL本には記載がなかったりする。
レスサンスコ。まだ会社(泣
0208NAME IS NULL
04/05/17 23:00ID:???TO_CHAR(DATEカラム, 'mm') = '1'みたいに文字列に変換すればいいのでは?
0210NAME IS NULL
04/05/18 10:24ID:???from (SELECT a,b FROM a left join b) table3
0211NAME IS NULL
04/05/18 10:42ID:FLZcxqMKどうもありがとうございます。これで何とかなりそうです。
0212NAME IS NULL
04/05/18 11:48ID:+5UV1MyO神さまありがとうございます。
0213NAME IS NULL
04/05/18 17:28ID:???0214NAME IS NULL
04/05/18 22:33ID:???例えば、
id
----
1
2
3
を
1,2,3
の様にSQLのみで1行で取得するにはどうすればいいでしょうか?
よろしくお願いします。
0215NAME IS NULL
04/05/19 02:23ID:???マルチ
0216NAME IS NULL
04/05/19 19:23ID:???マルチだが答えてやるこんちくしょう
ピボットテーブル
でぐぐれうんこ
あとSQL入門書(定番のSQLポケットリファレンスでいいぞ)買って来いヘタレ野郎
0217NAME IS NULL
04/05/20 14:00ID:+X5a+mzG視聴者 萌え1 萌え2
----------------------------------
A ミドリ ヒナタ
B アヤセ テマリ
を↓の表にするビュー作成を教えてください・・。
視聴者 萌え
A ミドリ
A ヒナタ
B アヤセ
B テマリ
0218NAME IS NULL
04/05/20 14:45ID:???0219NAME IS NULL
04/05/20 20:52ID:+w96lQEkを繋げて新しい文字列を作るのってどうやるのですか?
Execute('
DECLARE @i INT,
@moji VARCHAR(20)
SET @i = 0
WHILE @i < 10
BEGIN
SET @moji = ''AAAA'' + @i + ''BBBB''
〜
〜
SET @i = @i + 1
END
SET @moji = ''AAAA'' + @i + ''BBBB''の部分で行き詰ってまつ。
誰かおせーて。
0220NAME IS NULL
04/05/21 01:25ID:???FROM (
SELECT 視聴者, 萌え1 萌え
FROM アニオタ
) UNION (
SELECT 視聴者, 萌え2 萌え
FROM アニオタ
)
ORDER BY 視聴者;
0221NAME IS NULL
04/05/21 12:26ID:???convert とか cast とか
0222NAME IS NULL
04/05/22 03:00ID:3pK+cfvKあるフィールドの値がhogeだったら、とかの条件で
外部exeを起動する方法ってあるのでしょうか?
よろしくお願いします。
0223NAME IS NULL
04/05/22 03:38ID:3pK+cfvK0224NAME IS NULL
04/05/23 18:32ID:3VGGJqhwselect文でfromとwhereはどちらが先に解釈され、
条件が絞り込まれるのでしょうか?
またsql命令の優先順位や処理速度を調べる良い文献などはないでしょうか?
おねがいします。
0225NAME IS NULL
04/05/23 19:26ID:???各句の意味を考えればだいたい判ると思うぞ。
つか、FROMとWHEREの優先順位すら判らないというのは、
重症だぞ。
0226NAME IS NULL
04/05/23 20:11ID:???0227224
04/05/23 21:24ID:MO/uZXID重症ですか(鬱)
select*from
(a join (select*from b where b.b is null) on a.id = b.id) join
(select*from c where c.c is null) on a.No = c.No)
where (c.order = ?)
と実験したところfromよりwhereの方が、優先だったのですが納得いかずなのです。
また表b および表cが、
なぜ副問い合わせで違った表名を自動的に割り当てられるのか?
といったことが、初めて副問い合わせを理解(ちょぴと)したことで浮き上がった
次第です。
プログラム言語を高速化するよりsqlの最適化の方がよりよいと思われたので、
できれば良い文献をキボン
今もってる本は答えしか載ってないので物足りないのです。
よろしくお願いします。
0228NAME IS NULL
04/05/23 21:36ID:???0229NAME IS NULL
04/05/23 21:38ID:???どのWHEREがFROMより上だってか?
で、文献だけど、漏れは「プログラマのためのSQL」
ttp://www.amazon.co.jp/exec/obidos/ASIN/4894714809/250-9004556-6950643
を読んでいる。
0230224
04/05/23 21:56ID:MO/uZXID実践だけだと馬鹿にされるよー
特定できなくってすまんね。で優先となってるポイwhereは
where (c.order = ?) の部分
from句部分よりwhere句部分が優先になることが、納得いかなかったのですが
やはりfrom句部分が優先のはずなのですね?(テーブルの条件を記述する以上
当然かもしれませんが)
文献は明日でも本屋に行って確認してみます。
ありがとう
0231NAME IS NULL
04/05/23 22:34ID:???(a join (select*from b where b.b is null) on a.id = b.id) join
(select*from c where c.c is null) on a.No = c.No)
の仮想テーブルを作ったうえでc.order =? の抽出をしているはずだが違うのか?
0232224
04/05/23 22:48ID:MO/uZXIDその解釈で正解だとわたしも思います。
テスト用の環境(Rowが2・3行)で無知な人間がたまたまテーブル設計をしたので
fromよりwhereが優先のように見えたのでしょうねきっと。
でも>>229さまのおかげでもっと深くまで理解できそうです。
レスさんくす
0233NAME IS NULL
04/05/24 11:25ID:+HRlZqXP以下の3テーブルがあります。
その3テーブルより実行結果にあるような形でデータの取得
をするには、どのようなSQL文を書けばよいのでしょうか?
ちなみに3テーブル全てに関連付けられたデータが存在する
もののみを取得します。
TB1
| ID | NAME1 |
------------------
1 NM1-1
2 NM1-2
TB2
| ID | CD | NAME2 |
-------------------------
1 1 NM2-1
2 2 NM2-2
TB3
| CD | NO | NAME3 |
-------------------------
1 1 NM3-1
2 2 NM3-2
実行結果
| ID | NAME1 | CD | NAME2 | NO | NAME3 |
----------------------------------------------------
1 NM1-1 1 NM2-1 1 NM3-1
2 NM1-2 2 NM2-2 2 NM3-2
色々頑張ってみたんですけど、どうしてもできません。
初歩的なSQLだと思うのですが、どうしても解りませんでした。
よろしくお願いします!
0234NAME IS NULL
04/05/24 11:39ID:???SELECT tb1.id,tb1.name1,tb2,cd,tb2.name2,tb3.no,tb3.name3
FROM tb1,tb2,tb3 WHERE tb1.id=tb2.id AND tb2.cd=tb3.cd;
0235233
04/05/24 11:49ID:+HRlZqXPありがとうございます。データ取得できました!
心苦しくももう一つお聞きしたいのですが、IDの値を指定して
データを取得したい場合は、副問合せというものを使用すれば
よいのでしょうか?
0236NAME IS NULL
04/05/24 12:00ID:???SELECT tb1.id,tb1.name1,tb2,cd,tb2.name2,tb3.no,tb3.name3
FROM tb1,tb2,tb3 WHERE tb1.id=1 AND tb1.id=tb2.id AND tb2.cd=tb3.cd;
0237233
04/05/24 14:35ID:+HRlZqXPありがとうございます。
データは取得できたのですが、先生から
「副問合せ使え!ゴルァ!」と言われてしまいました。
副問合せ全くわからないです。
ネットで調べても2テーブル使用例しか発見できず・・・。
色々試行錯誤してみましたが、変な風にデータが取れてきてしまいます。
本当に申し訳ないのですが、教えていただけないでしょうか?
いや、ほんと厚かましいと思っているんですが。
0238無駄じゃ
04/05/24 14:53ID:???FROM tb1,tb2,tb3 WHERE tb1.id=tb2.id AND tb2.cd=tb3.cd) tbl4
WHERE tbl4.id=1
0239NAME IS NULL
04/05/24 15:02ID:???副問い合わせ? ひょっとしたらSQL92のJOINを言いたいのかも。
SELECT * FROM (tb1 JOIN tb2 USING(id)) JOIN tb3 USING(cd) WHERE id=1;
ついでに、わざとサブクエリを使ってやるとか?
SELECT * FROM (SELECT * FROM tb1 JOIN tb2 USING(id))AS tb4 JOIN tb3 USING(cd) WHERE id=1;
0240233
04/05/24 15:04ID:+HRlZqXP2chで初めて神に遭遇しました。
ありがとうございます!
このSQLを元に副問合せを勉強します。
SQL自体に挫折しかかっていたので、
色々な意味で本当に助かりました!
0241233
04/05/24 15:08ID:+HRlZqXPなんでもデータ件数が多くなった場合に、効率よく
処理するために副問合せを使うとの事だったんです。
そういうやり方もあるんですか。
試してみます。
ありがとうございます!
0242NAME IS NULL
04/05/24 15:16ID:???ああ、効率を考えるなら、
SELECT * FROM (SELECT * FROM tb1 JOIN tb2 USING(id) WHERE id=1)AS tb4 JOIN tb3 USING(cd);
だな。
しかし効率は、 WHERE id=1 を最初に持ってきた>>236 と同じ。
0243NAME IS NULL
04/05/26 14:36ID:???固定長のデータを取り込む際に、文字列の後ろについた空白を削除して
データをINSERTしたい場合は、
FIELD3 POSITION(16:23) CHAR "to_date(:FIELD3,'YYYYMMDD')"(これは日付ですが・・・)
のようにTrimか何かをつかえばよろしいのでしょうか?
0244NAME IS NULL
04/05/26 16:08ID:fy6id3aKttp://www.spice-of-life.net/tapkit/ja/images/many_to_many.png
こういうテーブル構造だった場合、
Employeeテーブルと、ProjectテーブルにデータをINSERTした後、
両者を関連づけするためのEmployeeProjectテーブルにも、
明示的に関連づけをINSERTせんといかんですよね?
・・・救いようがないくらいにウンコな質問してスマソ
0245NAME IS NULL
04/05/26 17:49ID:???この図はLEFT(RIGHT) JOIN を使うって意味じゃないのか?
0246NAME IS NULL
04/05/26 18:16ID:???EmployeeProjectはプロジェクトに参加している社員名簿ってことだろ。
社員が増えた -> Employeeに追加
新規プロジェクト発足 -> Projectに追加
そのプロジェクトの人員決定 -> EmployeeProjectに追加
ただこれだけだが。プロジェクトだけ決まってもそれに参加する人員が決まってなければ
EmployeeProjectにデータはいれない(入れられない)だけ。
あとは、外部キーとか参照整合性制約で調べるよろし。
0248NAME IS NULL
04/05/28 22:08ID:???日付 金額
----------------------
2004/01/01 10000
2004/01/03 8000
2004/01/05 7000
の様に日付が一部飛んでるテーブルを
日付 金額
----------------------
2004/01/01 10000
2004/01/02 0 ←空白でもよい
2004/01/03 8000
2004/01/04 0 ←空白でもよい
2004/01/05 7000
と日付を埋める形で抽出したいです。
何か良い方法はありませんか?
完全な日付だけが並んだ一時テーブルを作って
外部結合で何とかなるのかな?と考えているのですが
一向に進みません・・・
Excel VBAでADOを使って
TXTファイルを読み込んでます。
0249NAME IS NULL
04/05/28 22:35ID:???日付 金額
-----------------------
2004/01/01 10000
2004/01/03 5000
2004/01/05 8000
という、一部日付が抜けているテーブルが
あります。
日付 金額
-----------------------
2004/01/01 10000
2004/01/02 0 ←空白でも良い
2004/01/03 5000
2004/01/04 0 ←空白でも良い
2004/01/05 8000
という日付を埋める形で抽出したいのです
なにか良い方法はありませんか?
日付のみ並んだ一時的なテーブルを作って
外部結合すればよいのかな?と思うのですが・・・
Excel VBAでADOを使ってTxtファイルを読み込んでいます。
0250NAME IS NULL
04/05/28 22:37ID:???二重書き込みすいません・・・
0251NAME IS NULL
04/05/28 22:38ID:???0252NAME IS NULL
04/05/31 09:54ID:???外部処理
vbとか。
■ このスレッドは過去ログ倉庫に格納されています