5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

SQL教えてっ!! lt;3gt;

1 :デフォルトの名無しさん:03/01/10 23:26
前スレはこちら↓
SQL教えて〜!! <2>
http://pc3.2ch.net/test/read.cgi/tech/1028653822/

関連スレは>>2-10あたりにあるかと。

2 :デフォルトの名無しさん:03/01/10 23:28
データベース Part2
http://pc3.2ch.net/test/read.cgi/tech/1020158297/l50

【ノウ】DBアプリ開発ノウハウ【ハウ】
http://pc3.2ch.net/test/read.cgi/tech/1015807409/l50

★★★ SQLサーバ VS オラクル ★★★
http://pc3.2ch.net/test/read.cgi/tech/1008908462/l50

oracle質問
http://pc3.2ch.net/test/read.cgi/tech/1010400855/l50

Access使い集合!
http://pc3.2ch.net/test/read.cgi/tech/1005078204/l50

MySQLってどうよ
http://pc3.2ch.net/test/read.cgi/tech/1008316065/l50

InterBaseを使いこなすスレ
http://pc3.2ch.net/test/read.cgi/tech/1015250429/l50


3 :デフォルトの名無しさん:03/01/10 23:28
WebProg板の関連スレ

PostgreSQL
http://pc.2ch.net/test/read.cgi/php/989375812/l50

PHP + PostgreSQL
http://pc.2ch.net/test/read.cgi/php/983128806/l50

PHP + MySQL
http://pc.2ch.net/test/read.cgi/php/983250751/l50

MySQL vs PostgreSQL
http://pc.2ch.net/test/read.cgi/php/989341364/l50


4 :補完:03/01/10 23:32
>>2

【互換性】SQLServer VS Oracle Part2【ボラクル】
http://pc3.2ch.net/test/read.cgi/tech/1041604818/l50

Access使い集合! Ver2.0
http://pc3.2ch.net/test/read.cgi/tech/1032402846/l50

5 :デフォルトの名無しさん:03/01/10 23:57
ペット嫌い板は、2ちゃんねるの鬼門だったな。

6 :デフォルトの名無しさん:03/01/11 00:04
子供だからわかりませんってほんとに言ったの?>にかいどー氏に

7 :デフォルトの名無しさん:03/01/11 09:26
「○○人は〜」
「×△国は〜」
の類は名誉毀損にはならない罠。

8 :デフォルトの名無しさん:03/01/11 09:28
ゲーム鯖やコミック鯖もIP記録するようになったのね。

9 :デフォルトの名無しさん:03/01/11 10:02
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────

10 :デフォルトの名無しさん:03/01/11 10:56
のりゆき登場キボンヌ

11 :デフォルトの名無しさん:03/01/11 11:24
電柱が一本も無い町並みを、初めて見た。

12 :デフォルトの名無しさん:03/01/11 12:27
そんなまわりくどい傍証より見ればいいわけなんだけどね(^_^;)

13 :デフォルトの名無しさん:03/01/11 13:00
<丶`∀´><あっ糖が。
そういうわけでここは快速スレですすれ違いのタラコの話などはやめてくださいね。


14 :デフォルトの名無しさん:03/01/11 15:54
うそをうそと

15 :ついでだからこれも補完:03/01/11 17:05
dbMAGICについて
http://pc3.2ch.net/test/read.cgi/tech/1000536738/

ACCESS総合相談所 その6
http://pc.2ch.net/test/read.cgi/bsoft/1037856185/

●DB2とオラクル、どっちがどういい?● 
http://pc.2ch.net/test/read.cgi/bsoft/999755001/

ファイルメーカーとアクセス
http://pc.2ch.net/test/read.cgi/bsoft/997011051/

ファイルメーカー ユーザーの集い part 2
http://pc.2ch.net/test/read.cgi/bsoft/1038809645/

■○■dBASE個人面接所
http://pc.2ch.net/test/read.cgi/bsoft/984157332/

Oracleはどうよ?
http://pc.2ch.net/test/read.cgi/bsoft/966240993/


16 :デフォルトの名無しさん:03/01/11 23:55
>>IP記録

告発ネタが減少するのは残念。

・WTCテロのリーク
・西部の松坂の駐車違反
・牛肉買い上げの告発

等々、
いろいろとおいしいネタがあったのになあ。
おまえらの知ってる2ちゃん内の告発ネタを教えてください。

17 :デフォルトの名無しさん:03/01/12 00:06
良識ある書き込みをしろ

18 :デフォルトの名無しさん:03/01/12 02:41
何を今更・・・

19 :デフォルトの名無しさん:03/01/12 02:48
孫悟空、フリーザ、クロコダイン、フレイザード、アシベ、ノーマッド、メロンパンナ
全部漫画・アニメのキャラの名前

20 :デフォルトの名無しさん:03/01/12 10:16
       | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       |タキューウしようよ!
      ∠________
  ∧_∧                 ∧ ∧ο
 ( ・∀・)        │       (゚Д゚ ∩
 ( つ=○つ ━┳━━┷━━┳━  |   つ○
 | | |      ┃       .┃   / _ |〜
 (__)_)   ..┃       .┃   U ∪



21 :デフォルトの名無しさん:03/01/12 10:19
管理人よくこんなに金あるな
こんな厨房にも分けてほしいわ

22 :デフォルトの名無しさん:03/01/12 20:58
おれのイズピン記録すんなや

23 :デフォルトの名無しさん:03/01/12 21:02
(^_^;)だけでマァヴに思えてくる。あぁ。

証明と実体を混ぜたら話がわかんなくなるが、、、
マジレスすると、確認のために2ちゃんを閲覧するだけでも2ちゃんのルールに
従えというのですか?

#イケメン
(・◇・)

24 :デフォルトの名無しさん:03/01/12 21:10
(´ー`)ゝビッ 乙ですた〜 よーしおじさん過去ログ読んじゃうぞー

25 :山崎渉:03/01/13 18:46
(^^)

26 :デフォルトの名無しさん:03/01/13 22:52
次週には元気に走ってる刑事ドラマと違い
銃創や刀瘡は一生残るだろうな
以前入院してたトコに発砲事件で手を撃たれた主婦が来てた
軽症ってことで殆ど報道もされなかったが
肉と神経を掠った右手は、端は持てない字は書けない
賠償請求しようにも犯人に支払能力無しで治療費自腹
見ていて痛々しかった

犯人の私財も私物も刑務所での給与も取り上げろ!償い終わるまで贅沢を許すな
民事賠償が円満に終わるか保険入って首括るまで塀の中に入れとけ




27 :デフォルトの名無しさん:03/01/14 16:21
age

28 :山崎渉:03/01/15 17:46
(^^)

29 :デフォルトの名無しさん:03/01/15 18:04
こんにちは
外部結合で結合で
一方の条件に対するデータが存在しなかった場合でも
片方のデータを結果セ ットに含める指定を含めた選択を
行いたいのですがうまくいきません

TOKMST
SHITENCODE TOKCODE ...
01 0001
01 0002
01 0003
01 0004
01 0005

TOKTRN
SHITENCODE TOKCODE ZANDATE ZANKIN ...
01 0001 '2002/01/31' 1000
01 0004 '2002/02/01' 6000
01 0005 '2002/01/31' 1500

これらのテーブルで取り出した結果が
SHITENCODE TOKCODE ZANDATE ...
01 0001 2002/01/31 1000
01 0002
01 0003
01 0004
01 0005 2002/01/31 6000
としたいのです


30 :29:03/01/15 18:04
/*マスタとトランザクションファイルを結合*/
select MST.SHITENCODE ,
MST.TOKCODE ,
TRN.ZANDATE ,
TRN.ZANKIN ,
from TOKMST MST
RIGHT OUTER JOIN TOKTRN TRN /*LEFT OUTERでもうまくいかない*/
ON MST.SHITENCODE = TRN.SHITENCODE /*支店名
AND MST.TOKCODE = TRN.TOKCODE /*得意先コード
WHERE MST.SHITENCODE = '01'
AND MST.TOKCODE BETWEEN '0001' AND '9999'
AND TRN.ZANDATE = '2002/01/31';
としましたが
これらのテーブルで取り出した結果が

SHITENCODE TOKCODE ZANDATE ...
01 0001 2002/01/31 1000
01 0005 2002/01/31 6000
となって思うような結果が返りませんでした

どなたかどうぞよろしくお願いします


31 :デフォルトの名無しさん:03/01/15 18:58
最後の

AND TRN.ZANDATE = '2002/01/31'

を削ってみては?

32 :29:03/01/15 19:05
返信ありがとう
>29-30です

たしかに
AND TRN.ZANDATE = '2002/01/31'
を削ると希望の動作に近い結果が返ってきますが
SHITENCODE TOKCODE ZANDATE ...
01 0001 2002/01/31 1000
01 0002
01 0003
01 0004 2002/02/01 6000 /*このデータが不要*/
01 0005 2002/01/31 1500
となってしまいます

下記のような結果を出すことは出来ないものでしょうか?
(最初の投稿で希望する出力が間違っていたため再書込)
SHITENCODE TOKCODE ZANDATE ...
01 0001 2002/01/31 1000
01 0002
01 0003
01 0004
01 0005 2002/01/31 1500


33 :31:03/01/15 20:11
うう、結果表を良く見てなかったです。申し訳ない。

AND (TRN.ZANDATE = '2002/01/31' OR TRN.ZANDATE IS NULL)

ではいかがでしょう。

34 :29:03/01/16 09:17
返信ありがとうございます
>>29-30, >>32です
実は
AND (TRN.ZANDATE = '2002/01/31' OR TRN.ZANDATE IS NULL)
も試していまして(書き込まず申し訳ないです)結果は

01 0001 2002/01/31 1000
01 0005 2002/01/31 1500

となってしまいます
InterBase+WindowsXPだからかな?

このような構成でこういった結果を期待すると
いうのは、結構多いような気がするのですが
私だけなのかな?

35 :bloom:03/01/16 09:33


http://www.agemasukudasai.com/bloom/

36 :デフォルトの名無しさん:03/01/16 12:35
>34
WHERE句の「AND TRN.ZANDATE = '2002/01/31'」
を外す。
FROM句の「TOKTRN」の代わりに
「(SELECT * FROM TOKTRN WHERE ZANDATE = '2002/01/31') AS TRN」
とかやってみる。
ちなみに未検証。

37 :29:03/01/16 13:07
返信ありがとうございます
>>29-30, >>32,>>34です

>FROM句の「TOKTRN」の代わりに
>「(SELECT * FROM TOKTRN WHERE ZANDATE = '2002/01/31') AS TRN」
>とかやってみる。

Oracleでしたらこれで解決なのですが
InterBaseなのでFrom句でのSelect文をサポートしてないようです

これ以上時間を割くわけにはいきませんので
プロシージャを書いて抽出しようと思います

返信して下さった
>>31,>>33,>>36さん
ありがとうございました

38 :デフォルトの名無しさん:03/01/20 08:11
外部キーで繋がっている項目を削除するときに、
いちいち参照元から順に DELETE しているのですが、
一発でできるテクがあったら教えてほしいです(無理!?)


39 :デフォルトの名無しさん:03/01/20 09:18
DBの実装によりますね。
CASCADING DELETEをサポートしているRDBであれば、
参照整合性制約を作成するときに指定することで、DELETE発行時に
子表にあるデータを削除してくれるはずです。

40 :38:03/01/20 09:41
>>39
InterBase 使ってるんですが ON DELETE CASCADE というのがありました
ありがとぉ


41 :38:03/01/20 16:05
と思ったら全然違うものみたい


42 :sage:03/01/21 17:30
>>29
一回VIEWに吐いた物からSELECTすれば?

43 :デフォルトの名無しさん:03/01/21 17:51
>>29 おれはオラクルしかしらんなぁ・・SQLPLUSだとこれでよしだった。IBてなんじゃろ
select *
from TOKMST MST ,TOKTRN TRN
WHERE MST.SHITENCODE = TRN.SHITENCODE(+)
AND MST.TOKCODE = TRN.TOKCODE(+)
AND MST.SHITENCODE = '01'
AND MST.TOKCODE BETWEEN '0001' AND '9999'
AND (TRN.ZANDATE = '2002/01/31'
or TRN.ZANDATE IS NULL)

44 :デフォルトの名無しさん:03/01/21 18:20
NTで動かしているMSSQL2000で、アップデート(かな)で以下のような
メッセージが出てしまいます。

[Microsoft][ODBC SQL Server Driver][SQL Server]
データベース コンテキストは '<***>' に変更されました。
[Microsoft][ODBC SQL Server Driver][SQL Server]
言語設定を 日本語 に変更しました。

SQLは初めてで何のことか調べてもサッパリで困り果てて...
おわかりになる方いましたらご教授願えませんでしょうか。


45 :デフォルトの名無しさん:03/01/23 20:02
設計値テーブルを元に単価テーブルを更新をしようと思いますが、
設計値テーブルが下記のようになっているため、
UPDATE 単価
SET T.COST = S.長さ x S.高さ
FROM 設計値 AS S, 単価 AS T
WHERE S.ID = T.ID
したいのが思うようにいきません。

設計値
ID PARM VALUE 
01 長さ   30
01 高さ   25
02 長さ   50
02 高さ   30
03 長さ   50
03 高さ   30

単価
ID COST
01 ...
02 ...
03 ...

46 :山崎渉:03/01/23 20:05
(^^)

47 :デフォルトの名無しさん:03/01/23 20:36
sybase-11.0.3使用してます。
以下のテーブルがあるとします
# 表中「_」はスペースだと思ってください。

販売コード___販売明細コード_大分類コード_売価
------------_--------------_------------_-----------
K0000000004__001____________01_________________10000
K0000000004__002____________03_________________10500
K0000000005__001____________01_________________13000
K0000000006__001____________03_________________10000
K0000000016__001____________03_________________10000


このテーブルから↓の行だけを取り出したいのです。

K0000000005__001____________01_________________13000


条件は
・大分類コード「01」または「02」を持っている
・同じ販売コードの中に大分類コード「03」を持っていない

といったものですが、group by を使ったり等何度試しても取り出せません…。

48 :デフォルトの名無しさん:03/01/23 21:18
>47
NOT EXISTS とか NOT IN とか

49 :デフォルトの名無しさん:03/01/23 22:58
>>45
たしか、SQL鯖できるんだけどORACLEは出来なかったとおもう?
ビュー作ってやった記憶ある

50 :45:03/01/24 09:50
>>45です。

>>49
ORACLEだめっ?!(はぅ・・・・・)
SQLServerだとどうしたらよいのでしょう。

51 :デフォルトの名無しさん:03/01/24 10:14
>>47

sybaseは知らないけど

SELECT * FROM テーブル WHERE
大分類コード IN('01','02') AND
大分類コード NOT IN ( SELECT DISTINCT 販売コード FROM テーブル WHERE 大分類コード <> '03' )

てなかんじでいけない?


52 :デフォルトの名無しさん:03/01/24 10:26
>>51
間違えた...

SELECT * FROM テーブル WHERE
大分類コード IN('01','02') AND
販売コード IN ( SELECT DISTINCT 販売コード FROM テーブル WHERE 大分類コード <> '03' )

53 :デフォルトの名無しさん:03/01/24 10:54
>>50
Oracleだと、
update t set cost = (select parm*value from s where s.id = t.id);

54 :47:03/01/24 11:23
>>52
それだと、
K0000000004__001____________01_________________10000
K0000000005__001____________01_________________13000
の2行が取れてしまいました。。

select * from TABLE T1
where 大分類コード in ('01','02')
AND
NOT 販売コード in (
select 販売コード from TABLE T2
where 大分類コード = '03')

こんな感じでできました。お騒がせしました。

55 :デフォルトの名無しさん:03/01/25 01:53
質問です。
データをNoでソートした後、分割して、その分割した
塊のN個目だけをのこして削除する。

No Name
------- ------
1008012 あああ
1008055  いいい
1008061  うううう
1000072 えええ  



例:1000件のデータを100分割して、その中の2番目だけ取り出す。
  つまり、11番目から20番目のデータが残る。

このようにできるDELETE文はないでしょうか。
ただしNoは連番ではありません。

お願いします。



56 :デフォルトの名無しさん:03/01/25 13:34
>55
TOP 10 〜 で、最初の10件が取得できる。
NOT IN あるいは NOT EXISTS を使うことで
最初の10件以外のデータが取得できる。
そのデータのTOP 10 を取得することで
11〜20件目が取得できる。
DETETE と NOT IN(NOT EXISTS)で11〜20件目以外の
データをたぶん削除できる。

57 :デフォルトの名無しさん:03/01/26 04:48
>>50
SQL鯖では>>45のSQLが通るはず
ORACLEは>>50でいくみたいね
おいらは思いつかずVIEW作ってUPDATEしてた


>>55
質問ではDBMS名を書きましょう
答える方もいろいろ考えるの大変だし

PostgresはLIMITとOFFSETを使用すれば簡単
ORACLEはrownumでサブクエリにすれば出来るし
SQL鯖では(たぶんSQL2発かな?)
select TOP 10 * from
(
SELECT TOP 20 * from Table order by No asc
)
order by No desc


58 :デフォルトの名無しさん:03/01/26 19:14
現在インターネットが繋がりにくい障害はSQL使っているサーバーの穴をアタックしてるらしいんですが、
うちの会社は大丈夫なんだろか…
月曜日出勤するのが恐しい…
((;゚Д゚)ガクガクブルブル

59 :デフォルトの名無しさん:03/01/27 10:32
select * from table where tableid='target';
みたいにしてレコードを選択する場合
tableidの大文字小文字を無視することはできないでしょうか?
tableidがTargetだったりtarGetだったりTARGETだったりする
レコードをすべて抜き出したいのですが・・・
正規表現の//iに近いイメージです。

60 :デフォルトの名無しさん:03/01/27 12:44
Javaのプログラム中からテーブルに要素を追加しようとしているのですが、
うまくいかない部分がありますので教えていただきたいと思います。

使っているデータベースのソフトは MicrosoftAccess です。
要素を追加しようとしているテーブルには、3つの列(key, ID, time)があり、
データ型はオートナンバー(key)とテキスト型(ID, time)です。
プログラム中で、
String sql = "INSERT INTO table (ID, time) VALUES ('user', '1:10')";
という感じで、オートナンバーは挿入時に自動的に決まるように INSERT 構文を
書いたのですが、
「INSERT INTO ステートメントの構文エラーです」
というメッセージが出てしまいます。

どこかおかしいところがあれば、ご指摘いただきたいと思います。

61 :デフォルトの名無しさん:03/01/27 14:37
SQLの入門書を一冊くらい通読したほうがいいよ

62 :557:03/01/27 20:23
|------|------|------|------|---|------|
| kumi |name1 |name2 |name3 |...|name10|
|------|------|------|------|---|------|
|1kumi | 安藤 | 伊藤 | 上田 |...| 斉藤 |
|2kumi | 赤田 | 上島 | 浦部 |...| 小島 |
|3kumi | 安西 | 池田 | 榎本 |...| 田方 |
|------|------|------|------|---|------|

というようなmeibo1というテーブルがあり、
同じような形式のテーブルがmeibo4まであります。
それぞれのテーブルにははじめの列に必ずkumiという列があります。
つまり学級ごとの生徒の名前が10人づつはいっているテーブルが4つ
あり、全部で1クラス40人の名前データがあるのですが、
たとえばこの複数のテーブルから
「鈴木」と「矢田」という名前のあるデータのkumiの値を取り出したいのです。
しかし、「鈴木」と「矢田」というデータが違うテーブルにあるため
どのようなSQLを入力すればよいのかわかりません。
このような複数のテーブルからの重複検索の方法はありませんか?
テーブルをまとめずに検索したいのですが。よろしくお願いします。

63 :デフォルトの名無しさん:03/01/27 20:35
ちょっとずれてたので修正します。

|-----|------|-----|-----|...|-------|
| kumi |name1|name2|name3|...|name10|
|-----|------|-----|-----|...|-------|
|1kumi | 安藤 | 伊藤 | 上田 |...| 斉藤  |
|2kumi | 赤田 | 上島 | 浦部 |...| 小島  |
|3kumi | 安西 | 池田 | 榎本 |...| 田方  |
|-----|------|-----|-----|...|-------|

すみません。まだずれてますけどお願いします。


64 :デフォルトの名無しさん:03/01/27 21:08
>>62, 63
まずテーブル設計自体がクソ。

65 :デフォルトの名無しさん:03/01/27 21:53
>>62
> このような複数のテーブルからの重複検索の方法はありませんか?

に対しては、union で何とかなると思う。しかし...

>>64 の言うように、テーブル設計が無茶苦茶。
こんなテーブルでは、多分たいしたことしてないだろうから無理せず Excel で運用した方がいいとおもう。

66 :デフォルトの名無しさん:03/01/27 22:11
>>62
んだから質問するならDBMSくらい書けよ
折角書いてもサブクエリ使えなきゃ意味無いじゃん



67 :デフォルトの名無しさん:03/01/28 01:35
>>59
select * from table where lower(tableid)='target';

みたいに、カラム側に大文字or小文字変換をかければ良し。
ただ、indexが使われなくなる可能性大。


68 :(  _。。)_ バタ。 ◆eJlUd9keO2 :03/01/28 16:18
>>63
SQL−DBとしての意味をなしてないな。 そら非効率だわ。
一応方法は>>65が指してるから置いといて…

面倒だけど今からでも遅くない。こうしとけ

[meibo]
serial bigint(20) unsigned not null auto_increment, (若しくはpgならserial宣言)
meibo_number bigint(22) not null,
kumi varchar(12) not null,
name varchar(50) not null,
上から順番に シリアル番号 名簿番号 クラス 名前 だな。

最初っからこうしとけば
select kumi from meibo where 1 and name='鈴木' or name='矢田' order by meibo_number, class, serial
の1発で済むだろうに。

 【 >>63 は DBを理解するところから始めましょう 】

しかし、作ってしまったものは…いや!
やはりここはプログラム書いてでも今すぐテーブル構造を何とかしろ! 今すぐ!



>>67
うわ、変換あったんだ。 覚えとこう…。


23 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)