のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,603,493人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレMySQL 総合 Part18

    mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - megab + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    451 : NAME IS - 2010/10/06(水) 09:01:06 ID:??? (+17,+29,-5)
    その「とおり」
    452 : 447 - 2010/10/06(水) 09:13:23 ID:KYR4QbWd (-20,+29,-16)
    というか「あ」で、"は無かったです。
    けど押しつぶされるのはよく分かりません…
    453 : NAME IS - 2010/10/06(水) 09:33:34 ID:??? (+27,+29,-38)
    で、ググった結果、どんな風に調べて、文字コードは問題なしと判断したのか聞きたいところ。
    455 : NAME IS - 2010/10/07(木) 09:31:38 ID:??? (-1,+0,-13)
    ファイルにリダイレクトしてみりゃいいじゃん
    456 : NAME IS - 2010/10/07(木) 11:31:41 ID:??? (+27,+29,-29)
    キャリッジリターンが入ってるんじゃね?
    460 : 447 - 2010/10/07(木) 16:33:21 ID:KrND0SBh (-12,+17,-7)
    ファイルへ出力も問題ないです。
    なんか表示するときだけ変に…
    461 : NAME IS - 2010/10/07(木) 16:59:18 ID:??? (+20,+29,-24)
    >>459
    ということは、文字化け つーことで決着ですな
    変な出力するところを先のhexで見てみないとわからないね。
    464 : 447 - 2010/10/07(木) 20:28:38 ID:KrND0SBh (-2,+29,-32)
    NULLのあとに、すぐカーソルが元の位置に戻って、スペース、|、ってなった後に
    改行してるってこと?みたいですが….
    キャリッジリターンってのはどっから入ってきてるのか
    467 : NAME IS - 2010/10/11(月) 22:49:37 ID:??? (-27,-30,-36)
    ______  ___________
             V
        _____
       /::::::::::::::::::::::::::\                  _
      /::::::::::::::::::::::::::::::::::::::\             /  ̄   ̄ \
      |:::::::::::::::::|_|_|_|_|           /、          ヽ はぁ?黙ってろデブw
      |;;;;;;;;;;ノ   \,, ,,/ ヽ          |・ |―-、       |
      |::( 6  ー─◎─◎ )          q -´ 二 ヽ      |
      |ノ  (∵∴ ( o o)∴)          ノ_ ー  |     |
    /|   <  ∵   3 ∵>          \. ̄`  |      /
    ::::::\  ヽ        ノ\           O===== |
    :::::::::::::\_____ノ:::::::::::\        /          |
    468 : NAME IS - 2010/10/12(火) 01:04:18 ID:??? (-7,-30,-69)
    すみません、教えてください。

    select column1, column2 from table;

    という結果に、任意のcolumn1, column2を先頭に予め追加して
    おきたいのですが、方法はありますでしょうか。
    もしありましたらご教示いただけますと助かります。

    よろしくお願いします。
    469 : 468 - 2010/10/12(火) 01:09:20 ID:??? (+27,+29,-12)
    なんだか説明が下手ですみません。

    上記は、固定文字列を予め先頭に入れておきたいということです。

    よろしくお願いいたします。
    470 : 468 - 2010/10/12(火) 02:31:43 ID:??? (-28,-26,-2)
    unionで自己解決しました。
    すれ汚しすみませんでした。
    471 : NAME IS - 2010/10/12(火) 09:38:59 ID:??? (+27,+29,-6)
    説明に自信がないときは、簡単な例を示せばいいと思うよ。
    472 : NAME IS - 2010/10/12(火) 13:29:49 ID:??? (+43,-29,-77)
    ちょっと教えて下さい。
    とある下請けが使う簡単なシステムを作ってるのですが、
    以下のようなテーブル(いくつか省略)で作っています。

    部品テーブル
    ・部品ID
    ・部品名

    受注テーブル
    ・部品ID
    ・受注日
    ・受注数
    ・売価
    ・納品場所
    473 : NAME IS - 2010/10/12(火) 13:37:34 ID:??? (+16,+28,+0)
    うんうん
    474 : 472 - 2010/10/12(火) 14:00:23 ID:??? (-27,-30,+0)
    入庫テーブル
    ・部品ID
    ・入庫日
    ・入庫数

    下請けが使うので、顧客はうちしかいないので、顧客情報のテーブルは有りません。
    うちのどの部署に納品するかを示すフィールドが受注テーブルに有るだけです。

    本題に入りますが、同じ部品IDで売価が違う発注をする場合があるとします。
    今は集計するときに、SQL文を多数発行しています。

    ■Query1
    SELECT 部品テーブル.部品ID, 部品名, 売価, SUM( 受注数 ) AS 合計受注数, ( 売価 * SUM( 受注数 ) ) AS 総売上額
    FROM 受注テーブル
    INNER JOIN 部品テーブル ON 部品テーブル.部品ID = 受注テーブル.部品ID
    WHERE 受注日 LIKE  '2010-09-__'
    AND o_status =  '1'
    GROUP BY , 売価
    ORDER BY "
    476 : NAME IS - 2010/10/12(火) 14:01:55 ID:??? (-27,-30,-168)
    ■Query1
    SELECT 部品テーブル.部品ID, 部品名, 売価, SUM( 受注数 ) AS 合計受注数, ( 売価 * SUM( 受注数 ) ) AS 総売上額
    FROM 受注テーブル
    INNER JOIN 部品テーブル ON 部品テーブル.部品ID = 受注テーブル.部品ID
    WHERE 受注日 LIKE  '2010-09-__'
    GROUP BY , 売価
    477 : NAME IS - 2010/10/12(火) 14:15:18 ID:??? (-27,-30,+0)
    Query1で返ってきた受注IDの数だけ、Query2を実行

    ■Query2
    SELECT (
    先月以前の入庫 - 先月以前の受注
    ) AS 開始在庫, 今月の入庫, (
    今月までの入庫 - 今月までの受注
    ) AS 繰越在庫
    FROM (
    SELECT SUM( 受注数 ) AS 先月以前の受注
    FROM 受注テーブル
    WHERE 部品ID =  '部品ID'
    AND 受注日 <=  '2010-08-31'
    ) AS q1, (
    SELECT SUM( 入庫数 ) AS 先月以前の入庫
    FROM 入庫テーブル
    WHERE 部品ID =  '部品ID'
    AND 仕入日 <=  '2010-08-31'
    ) AS q2, (
    SELECT SUM( 入庫数 ) AS 今月の入庫
    FROM 入庫テーブル
    WHERE 部品ID =  '部品ID'
    AND 仕入日 LIKE  '2010-09-__'
    ) AS q3, (
    SELECT SUM( 受注数 ) AS 今月までの受注
    FROM 受注テーブル
    WHERE 部品ID =  '部品ID'
    AND 受注日 <=  '2010-09-30'
    ) AS q4, (
    SELECT SUM( 入庫数 ) AS 今月までの入庫
    FROM 入庫テーブル
    WHERE 部品ID =  '部品ID'
    AND 仕入日 <=  '2010-09-30'
    ) AS q5"
    478 : NAME IS - 2010/10/12(火) 14:21:03 ID:??? (-27,-30,-139)
    Query1とQuery2を実行して、

    部品名 | 開始在庫 | 今月の入庫 | 合計受注数 | 売価 | 総売上高 | 繰越在庫

    を求めています。
    今結合について勉強していて、1つのSQL文で全てのデータを呼べそうな気がしているのですが、
    複雑すぎて泣きそうです。

    教えてほしい事
    ・外部結合を使って、1つのSQL文で全て呼び出せますか?
    ・できるようでしたら、そのSQL文を教えて下さい。

    ヒントだけでも頂けるとありがたいです。お願いします。
    479 : NAME IS - 2010/10/12(火) 14:49:36 ID:??? (-29,-30,-234)
    最初のSQLは、合計受注数とかいらんしょ。よって部品テーブルもjoinもgroup byもいらn

    idだけselectしたものをq5の後にくっつけて、結合
    (distinct id にしたほうがいいかも)

    で、そのFrom句にくっつけたid算出テーブル(q6)をq1~q5の

    WHERE 部品ID = '部品ID'
    の部分を
    WHERE 部品ID = q6.id

    select句も

    SELECT (
    q6.id,
    先月以前の入庫 - 先月以前の受注
    ) AS 開始在庫, 今月の入庫, (
    今月までの入庫 - 今月までの受注
    ) AS 繰越在庫
    480 : 472 - 2010/10/12(火) 15:25:19 ID:??? (+31,+28,-81)
    複数の受注がある中で、受注日は無視して売価ごとにまとめているのでGROUP BYでまとめています。
    部品IDとは別に部品名を呼んでくる必要があるのでJOINしています。

    一つのSQL文にすることは無理なのでしょうか…。
    481 : NAME IS - 2010/10/12(火) 15:38:47 ID:??? (+32,+29,-67)
    いあ・・・
    Query1の意義は、あなたの業務に意義はあるのでしょうが・・・
    今回、Query1の結果をQuery2にて、使用するという要件に関しては、idしか要らんと言ってます・・・

    >一つのSQL文にすることは無理なのでしょうか・・・
    俺が伝えたことを試してみたのでしょうか・・・
    483 : NAME IS - 2010/10/12(火) 16:40:54 ID:??? (+27,+29,-16)
    結合条件は、外に出さないといかんね。
    486 : NAME IS - 2010/10/12(火) 18:54:19 ID:??? (-28,-30,-205)
    >>484
    あ、だめか。
    んじゃ、これだ。

    FROM句で、
    (select distinct 部品ID from 受注テーブル) AS IDS

    現在FROM句で結合しているq1~q5をselect句に移動

    ~現状~
    SELECT (
    先月以前の入庫 - 先月以前の受注
    ) AS 開始在庫

    これを↓のように

    (SELECT SUM( 受注数 ) AS 先月以前の受注
    FROM 受注テーブル
    WHERE 部品ID = IDS.ID
    AND 受注日 <= '2010-08-31')
    -
    (SELECT SUM( 入庫数 ) AS 先月以前の入庫
    FROM 入庫テーブル
    WHERE 部品ID = IDS.ID
    AND 仕入日 <= '2010-08-31') as 開始在庫

    他も同様に変更
    488 : 472 - 2010/10/12(火) 20:08:30 ID:??? (+24,+29,-65)
    >>486-487
    SELECT句の中にサブクエリを作るんですね、こんなの初めて知りました。
    やってみますと、それっぽい答えが返ってきました。感動です。
    正しく呼び出せているかチェックしてみます。
    490 : 472 - 2010/10/14(木) 09:51:00 ID:??? (+27,+29,-31)
    欲しいデータが正しく呼び出されている確認が取れました。
    本当にありがとうございました。
    491 : 447 - 2010/10/14(木) 15:38:17 ID:??? (-29,-29,-42)
    http://techbank.jp/Community/blogs/mymio/archive/2008/11/05/3039.aspx
    に書いてあるやりかたでやって、mysqlをcで利用することは出来たのですが、
    クエリに日本語がはいってるとうまくいきません。
    VisualC++ExpressEdition2010です。
    どうすればいいでしょうか
    493 : NAME IS - 2010/10/14(木) 17:19:45 ID:??? (+27,+29,-20)
    最近「そんな***で大丈夫か?」ってのが流行ってるらしいね
    494 : NAME IS - 2010/10/14(木) 17:42:28 ID:??? (+27,+29,-7)
    447って何でも2chで解決していそうだな。
    そんな貴方で大丈夫か?
    496 : NAME IS - 2010/10/15(金) 01:39:28 ID:??? (-29,-30,-42)
    質問!○月以前を呼び出す時は、必ず日付まで指定しないといかんの?

    SELECT *
    FROM table
    WHERE date <= '2010-10-31'

    今はプログラムで最終日を求めよるんやけど、
    日付を省略する方法があったら教えてー。
    498 : NAME IS - 2010/10/15(金) 03:14:31 ID:??? (-29,-24,-4)
    なんだLAST_DAYってのがあるやん
    マニュアル読む癖を付けようね
    499 : NAME IS - 2010/10/15(金) 10:11:42 ID:??? (-7,-29,-59)
    MySQLのシステム要件の記述が見つからない。
    Oracleは見つかるんだけどね。
    Linuxで使う場合のSwap、/tmpの必要容量について知りたい。
    どっかにないかなあ。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - megab + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について