X



トップページDB@2ch掲示板
1002コメント294KB
SQL初心者質問スレ [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001NAME IS NULL
垢版 |
2016/05/12(木) 05:29:07.61ID:HmbS4CfD
SQL初心者用の質問スレッドです。
0680NAME IS NULL
垢版 |
2017/06/01(木) 08:17:33.40ID:???
>>679
全く同じことを思った
結婚しようか
0681NAME IS NULL
垢版 |
2017/06/01(木) 14:22:43.80ID:???
最強に性格悪い夫婦
0682NAME IS NULL
垢版 |
2017/06/01(木) 23:03:30.83ID:???
♪いぃぃいぃぃいぃいぃぃぃいぃぃぃぃー
0683NAME IS NULL
垢版 |
2017/06/06(火) 22:32:19.81ID:???
伝票ID、顧客名、売上金額、売上月というテーブルがあるとします
顧客毎の各売上月の合計を問い合わせしたい場合どうすればいいのでしょうか?
売上月、顧客名、合計金額という風に出したいですが、一つ一つ顧客名毎に問い合わせするしかないのでしょうか?
0685NAME IS NULL
垢版 |
2017/06/06(火) 23:17:47.18ID:2nFS6UGQ
>>683
それぞれの顧客に電話して聞くしかないな。
0686NAME IS NULL
垢版 |
2017/06/06(火) 23:49:15.89ID:???
select `顧客名`,`売上月`,sum(`売上金額`) as `合計金額` from TABLE
group by `顧客名`,`売上月`;
0687NAME IS NULL
垢版 |
2017/06/07(水) 06:22:26.56ID:WkwCrNcL
アポストロフィ?
0689NAME IS NULL
垢版 |
2017/06/09(金) 03:38:40.83ID:LAO2WyDa
バッククオートでないの?
0690NAME IS NULL
垢版 |
2017/06/12(月) 03:22:13.66ID:???
アゲイン

teradataの識者いる?
0691NAME IS NULL
垢版 |
2017/06/12(月) 12:54:09.35ID:???
SQLの神さま、み教えを!

二つのテーブルを比較し、複数項目(7項目)の値が全て合致した行の
1項目をアップデートをしたいのですが、長ったらしいSQLになってしまいます。

シンプルな記述で実現する方法は、ありますでしょうか?!

お願いします!
0692NAME IS NULL
垢版 |
2017/06/12(月) 12:54:49.15ID:RxG+k+1Y
m(_ _)m
お願いします!
0693NAME IS NULL
垢版 |
2017/06/12(月) 16:30:14.35ID:???
長ったらしくならないので下手なことをせずそのままがいいように思う
0694NAME IS NULL
垢版 |
2017/06/12(月) 19:09:30.01ID:???
Oracleだと
 where (a1, a2, ...) = (b1, b2, ...)
みたいに書けちゃうけどまあ普通は
 where a1 = b1 and a2 = b2 and ...
しかないな
0695NAME IS NULL
垢版 |
2017/06/12(月) 20:54:47.97ID:???
>>694
文字列にして連結して比較する作戦はどうかな?
0696NAME IS NULL
垢版 |
2017/06/12(月) 21:39:05.03ID:???
>>694
それNULL=NULLをどうするのかで問題がでる
NULLの項目があってそれをまじめに考えたら
結構長ったらしくはなる
0697NAME IS NULL
垢版 |
2017/06/12(月) 21:49:53.25ID:???
SQL Serverです。

商品No 価格1 価格2 価格調整コード 調整価格
10000 1,000 1,100 001     200
10000 1,000 1,100 002    100
10000 1,000 1,100 003    100
12000 600 700 001    50
13000 800 850 001    100
13000 800 850 003    50

価格調整コードが'001'か'002'の場合は、
調整価格を価格1に加算し、
価格調整コードが'003'の場合は、
調整価格を価格2に加算する。
その結果を、商品Noから一意で取り出せるビューにしたい。

※イメージ
商品No 価格1(調整後) 価格2 (調整後)
10000 1,300 1,200
12000 650 700
13000 900 900

これをSQLだけで作ろうとしているのですが、無理でしょうか。
0698NAME IS NULL
垢版 |
2017/06/12(月) 21:51:57.07ID:???
case when 価格調整コード = '001'などを入れて、
下記のようにしてみました。

商品No 価格1 価格2 価格調整コード 調整価格 001価格 002価格 003価格
10000 1,000 1,100 001 200 200 NULL NULL
10000 1,000 1,100 002 100 NULL 100 NULL
10000 1,000 1,100 003 100 NULL NULL 100
12000 600 700 001 50 50 NULL NULL
13000 800 850 001 100 100 NULL NULL
13000 800 850 003 50 NULL NULL 50

これを、001価格〜003価格のNULLの部分を統合して、
1行で表示できるイメージでもよいです。
※イメージ
商品No 価格1 価格2 価格調整コード 調整価格 001価格 002価格 003価格
10000 1,000 1,100 001 200 200 100 100
12000 600 700 001 50 50 NULL NULL
13000 800 850 001 100 100 NULL 50

プログラムができないため、SQL Management Studioで
SQLだけうって表示できればと思っています。
0699NAME IS NULL
垢版 |
2017/06/12(月) 22:50:34.48ID:???
>>697
>商品Noから一意で
それ、元価格が複数あったりしたらどうするんだよ

とりあえずそのデータでなら
select distinct
商品No,
価格1 + (select ISNULL(SUM(調整価格),0) from テーブル where 商品No=t.商品No and 価格調整コード in ('001','002')) as [価格1(調整後)],
価格2 + (select ISNULL(SUM(調整価格),0) from テーブル where 商品No=t.商品No and 価格調整コード in ('003') ) as [価格2(調整後)]
from テーブル t

で行けるんじゃね
0700NAME IS NULL
垢版 |
2017/06/13(火) 12:58:54.35ID:???
>>695
セパレータつけないと
'abc', 'de' と 'ab', 'cde' が一致しちゃう
絶対に値に含まれないセパレータがあるならいいけど
0701NAME IS NULL
垢版 |
2017/06/13(火) 13:14:09.59ID:???
>>697
「イメージ」じゃなくて、そのデータの完全な結果を示せ
0702NAME IS NULL
垢版 |
2017/06/13(火) 18:50:57.76ID:???
>>697
まだ設計変えられるんだったら、正規化した方がいいかもよ
0703NAME IS NULL
垢版 |
2017/06/13(火) 22:19:04.42ID:???
また意味不明な「正規化」
0704NAME IS NULL
垢版 |
2017/06/13(火) 22:59:33.06ID:???
結合した結果を表示してるのかもしれないし、そこはなんとも。

>>703
意味不明なの?
0705NAME IS NULL
垢版 |
2017/06/13(火) 23:11:18.91ID:yhROQb+J
無理だと思ったらなんだって無理なんだよ
聞くならせめて「可能でしょうか」と聞け
0706NAME IS NULL
垢版 |
2017/06/14(水) 07:04:12.48ID:???
> 意味不明なの?
>>703 には
ってことでしょ
>>699
> それ、元価格が複数あったりしたらどうするんだよ
を見たら普通正規化しろって思うと思うがまあここ初心者スレだから
0707NAME IS NULL
垢版 |
2017/06/14(水) 07:44:23.00ID:???
>> それ、元価格が複数あったりしたらどうするんだよ
>を見たら普通正規化しろって思うと思うがまあここ初心者スレだから

それはクエリの話であって正規化とは全然関係ないな。
0708NAME IS NULL
垢版 |
2017/06/14(水) 08:10:11.20ID:???
>>699
ありがとうございました。これでできました!
元価格はひとつです。
いろいろご意見ありがとうございます。
最近勉強始めたもので、正規化などこれから勉強中です。
0709NAME IS NULL
垢版 |
2017/06/14(水) 08:19:49.45ID:???
>>707
> それはクエリの話であって正規化とは全然関係ないな。
全く理解してないのがよくわかる秀逸なレスだな w
0710NAME IS NULL
垢版 |
2017/06/14(水) 08:44:04.31ID:???
価格1 価格2 というカラム名だけ見て脊髄反射で
「第一正規形じゃない」と思い込んじゃったんだろう。
0711NAME IS NULL
垢版 |
2017/06/14(水) 10:47:57.31ID:???
>>710
商品テーブル: {商品No}, 価格1, 価格2 ({ }はPK)
調整価格テーブル: {商品No, 調整コード}, 調整価格

ってことじゃないの?ってことだろ
0712NAME IS NULL
垢版 |
2017/06/14(水) 12:18:18.14ID:22bTQ0Ls
SQLの神さま!
非正規化テーブルから
正規化テーブル1、正規化テーブル2へ
同時にインサートする時に、
正規化テーブル1、2それぞれに同じ連番を振りたいのですが、
シンプルな方法はありますでしょうか?

ちなみに連番フィールドは、主キーです。
0713NAME IS NULL
垢版 |
2017/06/14(水) 12:47:47.15ID:egtOOHVa
また意味不明な「非正規化」
0715NAME IS NULL
垢版 |
2017/06/14(水) 13:35:44.32ID:???
>>712
シンプルな方法を聞く前に、データベース設計の入門書をまず嫁
0716NAME IS NULL
垢版 |
2017/06/14(水) 18:10:33.42ID:???
>>712
RDBMSによると思うので使ってるもの書いてくれ
0717NAME IS NULL
垢版 |
2017/06/15(木) 00:18:57.91ID:/yb/PIsQ
質問ですが
カラムに  
[年齢]、[種別]、[時間]
があったとした場合に  [時間] の最新の100件だけを対象に合計、平均を出したいと思っています。
↓ に何を追加したら何を追加したらいいでしょうか?


SELECT SUM(年齢) AS 年齢の合計 , AVG(年齢) AS 年齢の平均 , 種別
FROM 従業員マスタ
GROUP BY 種別
0718NAME IS NULL
垢版 |
2017/06/15(木) 00:36:32.81ID:???
fromを、limitとかoffsetとか使ったサブクエリにすれば良いんじゃね
0719NAME IS NULL
垢版 |
2017/06/15(木) 00:56:23.31ID:/yb/PIsQ
>>718
limit と offsetを使ったら簡単にできそうですね。
まったく知らなかったので助かりました。ありがとうございました。
0720NAME IS NULL
垢版 |
2017/06/15(木) 01:11:37.26ID:???
年齢の合計というのは、始めて見たw
0721NAME IS NULL
垢版 |
2017/06/15(木) 12:13:49.76ID:???
年齢なんか合計してどうすんだ?年齢層を知りたいなら平均で判りそうなもんだが
0722NAME IS NULL
垢版 |
2017/06/15(木) 12:21:39.87ID:???
意味のない数字出力すんなや
0723NAME IS NULL
垢版 |
2017/06/15(木) 12:27:45.10ID:6L/hThIQ
1000歳野球みたいなのあるだろ無知どもめ
0724NAME IS NULL
垢版 |
2017/06/15(木) 12:33:50.82ID:???
対抗戦のチームで年齢合計を条件にすることありそうなw
0725NAME IS NULL
垢版 |
2017/06/18(日) 12:30:04.24ID:???
SQL serverはマイクロソフトのデータベースだよね?
ただSQLっていったら何になるのでしょうか??
0727NAME IS NULL
垢版 |
2017/06/18(日) 13:26:42.08ID:CR3oQu8v
>>725
リレーショナルデータベース製品のことを言っているなら、SQL Serverを「SQL」と呼ぶ人間もいるし、MySQLのことをただ「SQL」と呼ぶ人間もいる。

どちらの略し方もお勧めしない。
0728NAME IS NULL
垢版 |
2017/06/18(日) 14:37:13.30ID:c1GtVOfY
製品名が「SQL」が入ってるんだからどちらも自然な略し方じゃないか
他人の略し方をとやかく言うな
0729NAME IS NULL
垢版 |
2017/06/18(日) 14:39:54.44ID:???
すごい混乱するんだよね
ちゃんとまだ理解してないから
SQLserverからSQL文でデータを抽出するって自分は思ってるけど違う
またはSQLserverからMysqlを使ってデータを取得する、とか

混乱のポイントはSQLserverをデータベースじゃなくてMysql とかPostgresqlと並列で捉えて話している人とコミニュケーション取っていること

途中で頭混乱して何がなんだかわからなくなる

まとめると
SQLserverやOracleはデータベース名
ゆえにプログラミング言語じゃない、でいいかな?
0730NAME IS NULL
垢版 |
2017/06/18(日) 14:40:13.37ID:???
オラクルはSQLではありません
0731NAME IS NULL
垢版 |
2017/06/18(日) 14:40:42.48ID:???
SQLserverからSQL文でデータを抽出するって自分は思ってるけど違う?

疑問形でした
0732NAME IS NULL
垢版 |
2017/06/18(日) 14:41:31.60ID:???
>>730
ORACLEはデータベースで、という意味であえてSQLserverと並べたんだけど
0733NAME IS NULL
垢版 |
2017/06/18(日) 14:42:36.34ID:???
どなたかすっきりと正しい定義を書いてもらえないでしょうか?
検索してもそれぞれ少しずつ違い混乱してる…
0734NAME IS NULL
垢版 |
2017/06/18(日) 14:48:25.61ID:???
>SQLserverからMysqlを使ってデータを取得する、とか

何言ってんだ?
0735NAME IS NULL
垢版 |
2017/06/18(日) 14:49:42.60ID:c1GtVOfY
「sql server」
SQLを理解するインタープリターサービスを提供するサーバー型アプリケーションの総称

「SQL Server」
Microsoft社が製造・販売を行なうRDBMS製品
0738NAME IS NULL
垢版 |
2017/06/18(日) 14:54:52.55ID:???
>>737
はぁ?

SQLserverからsqlを使ってデータを取得する
だったら判るよ
MySQLはまた別個のRDBだろ?お前馬鹿?
0740NAME IS NULL
垢版 |
2017/06/18(日) 14:56:32.05ID:???
>>735
じゃあデータベース自体は他にあると思っていいの?
0741NAME IS NULL
垢版 |
2017/06/18(日) 14:57:26.82ID:???
煽るだけでスマートな答え方しない人は説明できないんでしよ?
0742NAME IS NULL
垢版 |
2017/06/18(日) 14:59:10.94ID:???
>>740
「データベース」ってのはただのデータの集合を示す概念
0743NAME IS NULL
垢版 |
2017/06/18(日) 15:00:38.35ID:???
じゃあ
RDBMSという括りの中に並列して
SQLserverもMySQLもpostgresqlもあると思っていいんでしょ?
0744NAME IS NULL
垢版 |
2017/06/18(日) 15:00:44.29ID:c1GtVOfY
>>740
データベースとは読んで字のごとくデータの事でありソフトウェアはあくまでもデータベースを利用・管理するためのものだけど?
「テキストファイルで作文書く」って変だろ?
0746NAME IS NULL
垢版 |
2017/06/18(日) 15:04:24.01ID:???
>>742
わかった
データベース自体はなんとかってメーカー名とかはつかないってこと?
0747NAME IS NULL
垢版 |
2017/06/18(日) 15:05:47.86ID:???
>>745
わかった
ありがと
全部それぞれ親戚だけど少しずつ違う言語と思えばいい?
0748NAME IS NULL
垢版 |
2017/06/18(日) 15:09:00.26ID:???
うちの会社はデータベースに独自の名前つけてるからそれがメーカー名製品名なのかと思ってたんだ
でもその大元がoracleでそれを企業用カスタマイズしてて、だからoracleがデータベースというのかと思ってた
それと同じにms SQLserverも考えてた
0749NAME IS NULL
垢版 |
2017/06/18(日) 15:10:06.01ID:???
そのレベルの話ならここで質問するよりWikipediaとかで調べた方が
嫌な気分にならなくてお互いハッピーだと思うぞ。
0750NAME IS NULL
垢版 |
2017/06/18(日) 15:10:55.49ID:???
>>747
ごちゃごちゃ考える前になんで入門書の一つも読もうと思わんの?
0751NAME IS NULL
垢版 |
2017/06/18(日) 15:14:21.08ID:???
そう思ってとりあえず本も買ったんだけど、そもそものところに帰ってきた
wikiも読んだ
けど会社で説明受けてまた混乱してきて
たぶんいろいろ略してる人で

ちょっと余談だけど、どうもソートを抽出の意味で使ってくるんだよ
Excelでもオートフィルタでデータ絞る時にソートして、って言ってくる
はーっ???となる
ソートは並べ替えだろ?

もう説明がめちゃくちゃで脳内変換しながらですげー疲れる
0752NAME IS NULL
垢版 |
2017/06/18(日) 15:16:38.99ID:???
ちょっと不安になってきたんだけど
どう考えたって
ソート=並べ替え
でオートフィルタで絞ることじゃないよな?
もう当たり前過ぎて聞いてて馬鹿馬鹿しくなるんだけど、その人に仕事教わった人はみんなフィルタ機能をソートするって言うんだよ
自分ひとり、はっ??となって
あまり続くと自信なくなってくる
0753NAME IS NULL
垢版 |
2017/06/18(日) 15:17:36.29ID:???
>>746
データベース(データの集合)を扱うためのソフトウェアがDBMS。これがOracleとかSQL server。
0754NAME IS NULL
垢版 |
2017/06/18(日) 15:17:53.28ID:???
まぁ用語の使い方がデタラメな連中が多くて混乱するってのは同情するけどさw
0756NAME IS NULL
垢版 |
2017/06/18(日) 15:19:41.45ID:???
>>747
それぞれのDBMSで使うSQLはSQL標準に準拠してはいるんだけど、DBMSによって多少方言はある
0757NAME IS NULL
垢版 |
2017/06/18(日) 15:20:45.99ID:???
脳内変換してるんだけど、いつか変換しなくてよかったのにー的間違いしそうで疲労がすごい
0758NAME IS NULL
垢版 |
2017/06/18(日) 15:23:46.13ID:???
>>756
おけ
ここらへんになれば確かに買った本に書いてある通りだ

これ買った
https://www.amazon.co.jp/SQL-第2版-ゼロからはじめるデータベース操作-プログラミング学習シリーズ-ミック/dp/4798144452
0760NAME IS NULL
垢版 |
2017/06/18(日) 15:29:41.60ID:???
は?と思ったそのときにどういう意味か確認すりゃいいのに。

一応プログラミングじゃソート=並べ替えが普通だけど、一般には分類、選別っていう意味もあるからな。
0761NAME IS NULL
垢版 |
2017/06/18(日) 15:36:24.83ID:???
>>760
んーできてたらするんだけどさ
できない空気なわけで…

そう広義では近しいから突っ込みにくい
けど明らかに絞りなんだよな…
はぁーどっかでしれっと質問するわ
0762NAME IS NULL
垢版 |
2017/06/18(日) 15:47:05.51ID:???
教えてくれた人ありがとです
0763NAME IS NULL
垢版 |
2017/06/18(日) 16:11:11.16ID:???
お願いあるんだけど、質問する時は、出来るだけアゲて欲しい
そうするとID表示されるので、質問者のレスを追いかけやすい
誰が質問し誰が回答しているか分からなくなるとちょっと困る
0764NAME IS NULL
垢版 |
2017/06/18(日) 16:43:41.78ID:c1GtVOfY
いつだってアゲアゲでいいじゃんか
むしろなんのためにわざわざさげんだよカス
0765NAME IS NULL
垢版 |
2017/06/18(日) 18:37:58.39ID:CR3oQu8v
日本マイクロソフトの人間もSQL ServerをSQLと略すやつがいるんだよな。

SQLのことはクエリやコマンドと呼ぶから混乱しないw
0767NAME IS NULL
垢版 |
2017/06/18(日) 18:52:15.83ID:???
MSSQLかSQL Serverなら混乱しないよね
0768NAME IS NULL
垢版 |
2017/06/18(日) 18:58:17.03ID:???
>>767
あーなら単にsqlならせめてsql文とかそういうこと?
0769NAME IS NULL
垢版 |
2017/06/18(日) 19:15:22.29ID:???
上で質問連打してたやつ
誰も決め手を書いてあげないからなかなか納得いかなかったようだが
SQL=言語と言ってあげればいいじゃん
それが日本語なのか英語なのかフランス語なのかそういう違いだって
日本語で卵ちょうだいっていうのと英語で卵ちょうだいは言葉が違うでしょ?って
0770NAME IS NULL
垢版 |
2017/06/18(日) 19:20:57.60ID:c1GtVOfY
>>769
いやだからSQLはSQL Serverの略だってば
0771NAME IS NULL
垢版 |
2017/06/18(日) 19:23:00.83ID:???
>>770
だからお主はそのつもりでも
そうじゃないやつがいるから混乱すんだべ
クエリをsqlっていう奴がいるから
0772NAME IS NULL
垢版 |
2017/06/18(日) 19:32:11.57ID:???
お題
「どなたかSQLを共有してくれますか?」
というメールが流れた
これはなんぞ?
0773NAME IS NULL
垢版 |
2017/06/18(日) 19:41:05.90ID:???
>>768
単にSQLなら問い合わせ言語のことだなぁ
あえて明示的に区別したいならSQL文だろうけど

データベースを集積されたデータとそれを操作するアプリケーションとで区別したいなら後者をDBMSと言うべきだけど前者は普通にデータベースって言うでしょみたいな
0774NAME IS NULL
垢版 |
2017/06/18(日) 19:41:40.82ID:c1GtVOfY
>>771
知るか他人のことなんかw
混乱してるなら混乱したままの現状を理解しろよw
0776NAME IS NULL
垢版 |
2017/06/18(日) 19:51:32.23ID:???
正しくはクエリを共有、だよな
0777NAME IS NULL
垢版 |
2017/06/18(日) 20:04:48.00ID:c1GtVOfY
>>776
それでも意味がわからんのだが?w
0778NAME IS NULL
垢版 |
2017/06/18(日) 20:11:19.41ID:???
>>777
だからわかんない中で意味を汲み取れよー
なんだろ?w
0779NAME IS NULL
垢版 |
2017/06/18(日) 20:16:42.99ID:c1GtVOfY
>>778
混乱してる事と元々意味が通らない事では天と地ほどのひらきがあるぞw
そうゆーとこ区別しようなw
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況