MYSQL

2017-07-04 6 views
0

いくつかの件のデータを下図のように、私は、ほぼ同じ構造を持つ3つのテーブルを持っているこのArthmetic操作、MYSQL

table name = myshop structure (id_no, time, teams, home, draw, away)

table name = myshop2 structure (id_no, time, teams, home, draw, away)

table name = myshop3 structure (id_no, teams, home, draw, away)

`TABLE NAME: MYSHOP 
    ID_NO TIME TEAMS       HOME DRAW AWAY 
    209 00:00 FK PARTIZAN vs CSKA MOSCOW 3.3 3.75 1.85 
    210 00:00 RAPID VIENNA vs CELTIC   2.6 3.3 2.3 
    211 00:00 SPARTAK MOSCOW vs FK VOZDOVAC 1.3 5.2 6.75 
    212 00:00 LUDOGORETS vs DINAMO MOSCOW 2.2 3.35 2.6 
    213 00:00 FC THUN vs FC ZURICH   1.9 3.8 2.6 
    214 01:00 FC NURNBERG vs BOHEMIANS 1905 1.45 3.9 4.6 
    215 01:00 LILLESTROM vs STROMSGODSET 1.0 3.5 3.35 
    216 01:00 HALMSTAD vs IF ELFSBORG   2.4 3.5 2.0 
    217 05:00 FLANDRIA vs CHACARITA JUNIORS 3.78 2.67 2.54 
    218 05:00 CA RIVER PLATE vs DANUBIO 3.25 3.15 2.7 
    219 05:00 JUVENTUD vs CERRO   3.55 3.15 2.3 

    TABLE NAME: MYSHOP 2 
    ID_NO TIME TEAMS       HOME DRAW AWAY 
    9  00:00 FK PARTIZAN vs CSKA MOSCOW  2.3 3.75 1.85 
    10 00:00 RAPID VIENNA vs CELTIC   1.6 3.3  2.3 
    11 00:00 SPARTAK MOSCOW vs FK VOZDOVAC 2.3 5.2  6.75 
    12 00:00 LUDOGORETS vs DINAMO MOSCOW  1.2 3.35  2.6 
    13 00:00 FC THUN vs FC ZURICH   2.9 3.8  2.6 
    14 01:00 FC NURNBERG vs BOHEMIANS 1905 2.453.9  4.6 
    15 01:00 LILLESTROM vs STROMSGODSET  1.0 3.5  3.35 
    16 01:00 HALMSTAD vs IF ELFSBORG   2.4 3.5  2.0 
    17 05:00 FLANDRIA vs CHACARITA JUNIORS 1.782.67  2.54 
    18 05:00 CA RIVER PLATE vs DANUBIO 1.25 3.15 2.7 
    19 05:00 JUVENTUD vs CERRO   1.55 3.15 2.3 


    TABLE NAME: MYSHOP 3 
    ID_NO TEAMS       HOME DRAW AWAY 
    33 FK PARTIZAN vs CSKA MOSCOW  2.3 2.75 2.85 
    10 RAPID VIENNA vs CELTIC   1.6 2.3 2.3 
    11 SPARTAK MOSCOW vs FK VOZDOVAC 2.3 3.2 6.75 
    21 LUDOGORETS vs DINAMO MOSCOW  1.2 2.35 2.6 
    31 FC THUN vs FC ZURICH   2.9 2.8 2.6 
    42 FC NURNBERG vs BOHEMIANS 1905 2.45 2.9 4.6 
    53 LILLESTROM vs STROMSGODSET  3.0 2.5 3.35 
    64 HALMSTAD vs IF ELFSBORG   2.4 2.5 2.0 
    75 FLANDRIA vs CHACARITA JUNIORS 1.78 1.67 2.54 
    86 CA RIVER PLATE vs DANUBIO  1.25 1.15 2.7 
    97 JUVENTUD vs CERRO    1.55 1.15 2.3 

`

&ので私がしたいことは、この仕様を実行するSQL構文ですAWAYDRAW、それらのテーブルに存在し

件のデータがHOMEに同じチームの値が異なる値を持つ単一arthmeticオペを行うことが可能です。

それはすべての値を合計し、各チームに1つの値を取得し、その後1で、1により、1 myshopテーブル除算でmyshop3テーブルの格差でawayの値をmyshop2テーブルの格差でdrawの値をhomeの値を取る、とすべきです下の簡単な例のように、出力は対応するチームと合計する必要があります。

FK PARTIZAN vs CSKA MOSCOW 105

理想的には、この上で自分の考えの人たちが必要

SELECT from MYSHOP(home/1)+MYSHOP2(draw/1)+MYSHOP3(away/1) where TEAMS(MYSHOP=MYSHOP2=MYSHOP3)

のようになります構文。

+0

また、 1で割ることはあなたが知っていることを何もしません... – litelite

+0

あなたはちょうど 'JOIN'を見逃しています。それは'(MYSHOP.home/1)+(MYSHOP2.draw/1)+ ... 'でなければなりません。 'SELECT'は' FROM'ではなく、私は他の明白な間違いをスキップします。私はあなたが読んで(または再読んで)SQLチュートリアルを行うべきだと思っています。これらは計算列と呼ばれます。 – litelite

+0

しかし、もし私が再読したら、実行するのは本当に可能ですか? @liteite – Ruckser

答えて

0

あなたの構文の希望と構文の現実が一致しないことを恐れています。

私はあなたが達成しようとしていることは本当にわかりませんが、SPARTAK MOSCOW vs FK VOZDOVACのような依存する文字列はうまくいかないでしょう。例えば、これらは、 "参加する" 必要があります。

  1. FKヴォジュドヴァツ対スパルタク・モスクワスパルタク・モスクワ対
  2. FKヴォジュドヴァツ

これらの3つのテーブルを結合する方法としてこれを考えてみましょう:

 SELECT 
      1 tbl_src, id_no, teams, home, draw, away 
     FROM myshop 
     UNION ALL 
     SELECT 
      2 tbl_src, id_no, teams, home, draw, away 
     FROM myshop2 
     UNION ALL 
     SELECT 
      3 tbl_src, id_no, teams, home, draw, away 
     FROM myshop3 

試してみてください:

SELECT 
     teams 
    , SUM(home) 
    , SUM(draw) 
    , SUM(away) 
FROM (
     SELECT 
      1 tbl_src, id_no, teams, home, draw, away 
     FROM myshop 
     UNION ALL 
     SELECT 
      2 tbl_src, id_no, teams, home, draw, away 
     FROM myshop2 
     UNION ALL 
     SELECT 
      3 tbl_src, id_no, teams, home, draw, away 
     FROM myshop3 
) AS d 
GROUP BY 
     teams