mysql&php初心者です。
考えて4日目になりますがどうしても出来ないので宜しくお願いします。
現在使っているのは
MYSQL4.1でレンタルサーバーです。
そしてCREATE TEMPORARY・CREATE VIEWは使用できないみたいです。
そしてやりたいことは4つのテーブルを結合して集計したいです。
具体的には
テーブル1
ID・会社名の順に
35・テスト会社
テーブル2
ID・受注内容・受注金額
35・テスト受注・100000
テーブル3
ID・経 費
35・200
テーブル4
ID・仕 入
35・200
35・500
の4つです。
で希望の結果は
ID・会社名・受注内容・経費・仕入
35・テスト会社・テスト受注・200・700
と出したいのですがどうしても経費の部分が『400』となってしまいます。
無理なことをしようとしているのかも知れませんが宜しくお願いします
No.2ベストアンサー
- 回答日時:
#1です。
#1提示のSQLは、group byは必要なかったですね。
<訂正版SQL例>
select
x.id,
会社名,
受注内容,
(select sum(経費) from tbl3 where id=x.id) as 経費,
(select sum(仕入) from tbl4 where id=x.id) as 仕入
from tbl1 as x,tbl2
where x.id=tbl2.id
chukenkenkou様
ご丁寧にありがとう御座います。
レンタルサーバーでCREATE TEMPORARY TABLEは禁止されているみたいでした。
でもSELECTとFROMの間にSQLを書けるとは、考えもしなかったです。
本当に勉強になりました。
ありがとう御座いました。
No.1
- 回答日時:
各表の行数の比率を示してくれると、回答しやすいのですけどね。
テーブル4のID=35の行が2行あるので、単純にジョインするとテーブル3の経費=200の行が2個できてしまいます。
<SQL例>
select
x.id,
会社名,
受注内容,
(select sum(経費) as 経費 from tbl3 where id=x.id group by id) as 経費,
(select sum(仕入) as 仕入 from tbl4 where id=x.id group by id) as 仕入
from tbl1 as x,tbl2
where x.id=tbl2.id
>MYSQL4.1でレンタルサーバーです。
>そしてCREATE TEMPORARY・CREATE VIEWは使用できないみたいです
create viewは、MySQL 5.0で実装されたので、使えなくて当然でしょう。cerate temporary tableはMySQL 4.0以前の実装なので、create tableができるなら、使えると思いますが?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- その他(データベース) accessについて 2 2022/05/31 16:58
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- MySQL 【MySQL】本当に困っています。詳しい方、ご教授よろしくお願いします。 1 2023/06/03 14:18
- その他(データベース) accessでのフォームの連携について 2 2022/06/14 00:45
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
副問合せの書き方について
-
SQLにて特定の文字を除いた検索...
-
クエリ表示と、ADOで抽出したレ...
-
VIEWの元のテーブルのindexって...
-
ある条件の最大値+1を初番する...
-
エラー 1068 (42000): 複数の主...
-
Unionした最後にGROUP BYを追加...
-
バインド変数について
-
期間の重複を調べるSQL文につい...
-
上位3位を求めるSQL文は?
-
一つ前のレコードの値と減算し...
-
ルアーのフックの線径を教えて...
-
ある列の値を自動的にずらしたい
-
MySQLでのEXCEPTについて
-
SQL Left Join で重複を排除す...
-
カラム名でseqとidではどちらが...
-
SQLサーバから、項目の属性(型...
-
MySQLのIF文
-
[MySQL] UNIQUE制約の値を更新...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
副問合せの書き方について
-
SQLサーバから、項目の属性(型...
-
SQL Left Join で重複を排除す...
-
select文のwhere句に配列を入れ...
-
VIEWの元のテーブルのindexって...
-
PL/SQLの変数について
-
マイクラPC版のコマンドで効率...
-
エクセルの関数について教えて...
-
SQLにて特定の文字を除いた検索...
-
sqlで、600行あるテーブルを100...
-
Access パラメータクエリをcsv...
-
Unionした最後にGROUP BYを追加...
-
inner joinをすると数がおかし...
-
複数テーブルのGROUP BY の使い...
-
ある条件の最大値+1を初番する...
-
MySQLのint型で001と表示する方...
-
クエリ表示と、ADOで抽出したレ...
-
[MySQL] UNIQUE制約の値を更新...
-
テーブル名を省略して「h.id」...
おすすめ情報