>932
数値型に対してシングルクオートで括ったWhereを書くと、型の不一致が出るDBMSもある。
つか、事前に列の型が分からないってどういう状況やねん?
935 :
デフォルトの名無しさん:03/07/15 16:27
ある日付からある日付までの間に、日曜日が何回あるかを調べるには
SQL文ではどう書けば宜しいのでしょうか?
DBサーバ上でやるなら、
ある日付から1日づつDATEADDし、
ある日付の曜日に対して(DAYNAME=日曜)だったらカウントを
上げある日付までループさせ、カウント値を返すストアドプロシージャ
もしくはファンクションをつくる。
>>935 何週間経ったか、なら、
TRUNC( (ある日付 - ある日付) / 7 )
とかで行けるけどな。(for Oracle)
日曜日が何回、はSQL文だけでは無理ぽ。
FUNCTION作れば?
>936 >937
ありがとうございます。
やはりSQL文だけでは無理ですか、、、、、。
素直にPHPでスクリプト書きます。
「やはり」ってそんなこと臭わせてないかったじゃん。
TRUNC(終了日 - NEXT_DAY(開始日 - 1, '日') / 7)
('日' は、NLS_PARAMETER によっては 'Sun')
あ、最後に +1 忘れた。
>>940 TRUNC使ってるから、Oracleだな?
NEXT_DAYって何?
> 「やはり」ってそんなこと臭わせてないかったじゃん。
うっ、するどい。
>934
ありがとうございました。
やっぱり、DBMSによっては不一致になるものもあるんですね。
ちなみに、状況は汎用で使うDBアクセス系ツールの作成中です。
*そうそう手抜きはできないか……。
945 :
デフォルトの名無しさん:03/07/17 12:15
至急教えてください!
SQL SERVER 2000でTABLE1に
ユーザID 分類1 分類2 日付
M0010 AAA BBB 2003/07/17 15:00
M0010 BBB CCC 2003/07/17 15:50
M0020 AAA BBB 2003/07/18 08:00
M0020 BBB CCC 2003/07/17 10:50
M0050 FFF BBB 2003/07/18 08:00
M0050 WWW CCC 2003/07/17 10:50
M0050 WWW CCC 2003/07/17 12:50
となっていた場合
ユーザID 分類1 分類2 日付
M0010 AAA BBB 2003/07/17 15:00
M0020 AAA BBB 2003/07/18 08:00
M0050 WWW CCC 2003/07/17 12:50
と、データが出現する順番で各ユーザIDの先頭レコードを返すように
クエリを作りたいのですが、こんなことできますでしょうか?
OSはXPなんですが、
TTSSH、TeraTerm Pro をインストールして、接続までできたんですが、
文字が全く入力出来ないんです。
キーボードの設定が悪いのでしょうか?
どうすれば文字が打てるようになるのか教えて下さい。
948 :
デフォルトの名無しさん:03/07/17 14:14
>>946 そうです。日付時間の若い順です。
関数があればベストなのですが。できないですかね。
>>945 SELECT ユーザID,MIN(日付)
FROM hoge
GROUP BY ユーザID.
分類1と分類2も必要なら結合しる。
950 :
デフォルトの名無しさん:03/07/17 16:32
オラクルで言う ”Select A || B From C”のようにAとBをつなげて出力したいのですが、
SqlServerではどのように表現すればいいのか教えてください。
お願いします。
&っしょ
952 :
デフォルトの名無しさん:03/07/17 19:23
>>949 これではだめなのです。
SQL SERVER 2000でTABLE1に
ユーザID 分類1 分類2 日付
M0010 AAA BBB 2003/07/17 15:00
M0010 BBB CCC 2003/07/17 15:50
M0020 AAA BBB 2003/07/18 08:00
M0020 BBB CCC 2003/07/17 10:50
M0050 FFF BBB 2003/07/18 08:00
M0050 WWW CCC 2003/07/17 10:50
M0050 WWW CCC 2003/07/17 12:50
これ自体もSQLクエリの値でORDER BYしております。
分類1.2を含めたらGROUP BYできないのでは?
>>952 未検証。
同一ユーザに同じ日付が複数合ったら知らん。
SELECT h1.* FROM hoge h1
INNER JOIN(
SELECT ユーザID,MIN(日付) AS 日付
FROM hoge
GROUP BY ユーザID) AS h2
ON h1.ユーザID = h2.ユーザID AND h1.日付 = h2.日付
ORDER BY h1.ユーザID
954 :
デフォルトの名無しさん:03/07/18 14:00
select文だと複数のテーブルにアクセスできますが、
updateやinsertはどうですか?
一度の複数のテーブルのレコードを変更できたりしますか?
自分でやってみたらダメだったんですが。
956 :
デフォルトの名無しさん:03/07/18 15:02
なにがだめなんですか!
960 :
デフォルトの名無しさん:03/07/18 16:40
よくある30件づつってゆーのは
SQLで指定しているのが普通でつか_?
>>960 Postgresなら、LIMIT,OFFSETがあるから、SQLで指定するのって楽勝なんだけど、
オラクルとかって、どうするんだろうな。
963 :
デフォルトの名無しさん:03/07/18 20:24
Oracleです。下のSQL文、もっとシンプルに書けないでしょうか?
何がやりたいかと言えば、TBLからCD毎に件数の一番多いVLを取得、です。よろしくお願いします。
SELECT a.CD,a.VL FROM
(SELECT CD,VL,COUNT(VL) CNT FROM TBL GROUP BY CD,VL) a,
(SELECT CD,MAX(CNT) MCNT FROM
(SELECT CD,VL,COUNT(VL) CNT FROM TBL GROUP BY CD,VL)
GROUP BY CD) b
WHERE a.CD = b.CD AND a.CNT = b.MCNT
データベースの中にファイルの中味をそのまま入れる方法はないでしょうか?
#SQLでなければ、できるようなフリーソフトを教えていただいても
#ありがたいのですが
>>964 ある。
が、DBMSにより方法は異なる。
おまいさんの使ってるDBはなんじゃらほい。
Oracle(8以降)とSQL server です。
BLOB、ぐぐってみましたが、うまくヒットしません。
#うー、キーワードの組み合わせが悪いのだろうか。溺れそうだ。
SQL Server 使ってんなら、BooksOnLine で
「BLOB」か「image データ型」で調べてみなよ。
っていうか google でも、ちゃんと該当するよ。
あんた調べる気ないんだろ?
>>964 もうサポートに聞け
サンプルコードぐらい出るだろ(w
質問です。
レシートに記載されてる項目を表にした。
<表1>
レシート 日付 時間 商品名 単価 数量 小計 税金 預かり金 お釣
番号
1 2003.6.17 11:30 ホットケーキ 300 1 600 30 1000 270
チーズケーキ 300 1
2 2003.6.17 12:01 アイスコーヒー 300 1 1400 70 2000 530
ホットコーヒー 300 1
ハムトースト 400 1
シフォンケーキ 400 1
●各レシートは、レシート番号と日付により一意に決まるので、{レシート番号、日付}は
候補キーである。他に候補キーはないので、これを主キーとした。
●税金は、小計*0.05で計算する。言い換えると、税金は小計に関数従属する。
●関数従属は他にもある。
あ、失敗しました。
質問です。
レシートに記載されてる項目を表にした。
<表1>
レシート 日付 時間 商品名 単価 数量 小計 税金 預かり金 お釣
番号
1 2003.6.17 11:30 ホットコーヒー 300 1 600 30 1000 270
チーズケーキ 300 1
2 2003.6.17 12:01 アイスティー 300 1 1400 70 2000 530
ホットコーヒー 300 1
ハムトースト 400 1
シフォンケーキ 400 1
●各レシートは、レシート番号と日付により一意に決まるので、{レシート番号、日付}は
候補キーである。他に候補キーはないので、これを主キーとした。
●税金は、小計*0.05で計算する。言い換えると、税金は小計に関数従属する。
●関数従属は他にもある。
質問です。
レシートに記載されてる項目を表にした。
<表1>
レシート 日付 時間 商品名 単価 数量 小計 税金 預かり金 お釣
番号
1 2003.6.17 11:30 ホットコーヒー 300 1 600 30 1000 270
チーズケーキ 300 1
2 2003.6.17 12:01 アイスティー 300 1 1400 70 2000 530
ホットコーヒー 300 1
ハムトースト 400 1
シフォンケーキ 400 1
●各レシートは、レシート番号と日付により一意に決まるので、{レシート番号、日付}は
候補キーである。他に候補キーはないので、これを主キーとした。
●税金は、小計*0.05で計算する。言い換えると、税金は小計に関数従属する。
●関数従属は他にもある。
何度もすみません。
位置がずれていますが、スペースで何とかわかってもらえますでしょうか・・・。
レシート番号、日付、時間、小計、税金、預かり金、お釣りのデータが入ってるのは、
1行目と三行目だけです。
上の続きなのですが、
「問題1」
表1を以下の表2と表3に分解した。
(1)表2、3の主キーを示せ。
(2)この分解は、無損欠結合分解か?
(3)表2、表3は第一正規形か?
<表2>
レシート番号 日付 商品名 単価 数量
1 2003-6-17 ホットコーヒー 300 1
1 2003-6-17 チーズケーキ 300 1
2 2003-6-17 ジンジャエール 300 1
2 2003-6-17 ホットコーヒー 300 1
2 2003-6-17 ハムトースト 400 1
2 2003-6-17 シフォンケーキ 400 1
<表3>
レシート番号 日付 時間 小計 税金 預かり金 お釣り
1 2003.6.17 11:30 600 30 1000 270
2 2003.6.17 12:01 1400 70 2000 530
<問題2>表3は、第三正規形でない。その理由を示せ。
この問題の答えを教えて下さい。お願いします。
(上の二つの表もずれていたらすみません)
質問です。
レシートに記載されてる項目を表にした。
<表1>
レシート 日付 時間 商品名 単価 数量 小計 税金 預かり金 お釣
番号
1 2003.6.17 11:30 ホットコーヒー 300 1 600 30 1000 270
チーズケーキ 300 1
2 2003.6.17 12:01 アイスティー 300 1 1400 70 2000 530
ホットコーヒー 300 1
ハムトースト 400 1
シフォンケーキ 400 1
●各レシートは、レシート番号と日付により一意に決まるので、{レシート番号、日付}は
候補キーである。他に候補キーはないので、これを主キーとした。
●税金は、小計*0.05で計算する。言い換えると、税金は小計に関数従属する。
●関数従属は他にもある。
976 :
デフォルトの名無しさん:03/07/25 01:28
上げておく
もうちょっとで次スレっすね。
977 :
デフォルトの名無しさん:03/07/25 05:40
>>974 問題1
(1)
表2 レシート番号 日付 商品名
表3 レシート番号 日付
(2)
情報無損失分解である。
(3)
表2 第一正規形(繰り返し項目はないが部分キーである「商品名」に「単価」が部分関数従属しているため)
表3 第二正規形(繰り返し項目はない。部分関数従属していない。「お釣」が「小計、税金、預かり金」に対して推移関数従属しているため)
問題2
問題1(2)表3の解説によるため
978 :
デフォルトの名無しさん:03/07/25 05:44
>>977 やべ間違えた。思いっきり
> ●税金は、小計*0.05で計算する。言い換えると、税金は小計に関数従属する。
てかいてあるじゃん。
問題1
(3)
表3 第二正規形(繰り返し項目はない。部分関数従属していない。「税金」が「小計」に対して推移関数従属しているため)
内税/非課税商品には対応しなくていいの?
>>979 いいのよ〜。
●税金は、小計*0.05で計算する。言い換えると、税金は小計に関数従属する。
これ↑が仕様だ。
早く、次スレ立てろよ?
だめ。