回答編集履歴

3

ソースコメント追加

2017/01/25 12:46

投稿

Panzer_vor
Panzer_vor

スコア1636

test CHANGED
@@ -22,6 +22,8 @@
22
22
 
23
23
  SELECT
24
24
 
25
+ /* 指摘1:大前提としてSELECT句でカラムをリストする時はカンマ区切りが必要です */
26
+
25
27
  rank.touroku_ymd AS touroko_ymd
26
28
 
27
29
  , rank.riyou_amt AS riyou_amt
@@ -38,7 +40,7 @@
38
40
 
39
41
  LEFT JOIN knme
40
42
 
41
- /* 指摘:rankテーブルにmstcodeはないためNG、そもそも結合できるテーブル同士?? */
43
+ /* 指摘:rankテーブルにmstcodeはないためNG、そもそも結合できるテーブル同士?? */
42
44
 
43
45
  -- ON rank.mstcode = knme.mstcode
44
46
 
@@ -46,19 +48,19 @@
46
48
 
47
49
  LEFT JOIN codetb
48
50
 
49
- /* 指摘:下記も結合条件として本当に妥当?? */
51
+ /* 指摘:下記も結合条件として本当に妥当?? */
50
52
 
51
53
  ON rank.kaiin_rank = codetb.code
52
54
 
53
55
  WHERE
54
56
 
55
- /* 指摘:rankテーブルにカラム名が「NO」のものが見当たりません(定義を全部掲載してないだけ??) */
57
+ /* 指摘:rankテーブルにカラム名が「NO」のものが見当たりません(定義を全部掲載してないだけ??) */
56
58
 
57
59
  -- rank."NO" = 1923
58
60
 
59
61
 
60
62
 
61
- /* 指摘:下記のように抽出条件を付けるとLEFT JOINの意味がありません */
63
+ /* 指摘:下記のように抽出条件を付けるとLEFT JOINの意味がありません */
62
64
 
63
65
  codetb.type = 293
64
66
 

2

一部コメント修正

2017/01/25 12:46

投稿

Panzer_vor
Panzer_vor

スコア1636

test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
  LEFT JOIN codetb
48
48
 
49
- /* 指摘2:下記も結合として本当に妥当?? */
49
+ /* 指摘2:下記も結合条件として本当に妥当?? */
50
50
 
51
51
  ON rank.kaiin_rank = codetb.code
52
52
 

1

追記

2017/01/25 12:44

投稿

Panzer_vor
Panzer_vor

スコア1636

test CHANGED
@@ -5,3 +5,81 @@
5
5
  少なくとも**13行目**、2つ目のLEFT JOIN句下の指定しているテーブル名は間違ってるのではないでしょうか。
6
6
 
7
7
  code → codetbでは?
8
+
9
+
10
+
11
+ #以下追記
12
+
13
+ PCからSQLを確認してみると、上記のミス以前にクエリがめちゃくちゃですね・・・
14
+
15
+ 以下にとりあえず動作はするクエリは記載しますが、
16
+
17
+ 同時にいくつか指摘させていただきますので合わせて確認して下さい。
18
+
19
+
20
+
21
+ ```SQL
22
+
23
+ SELECT
24
+
25
+ rank.touroku_ymd AS touroko_ymd
26
+
27
+ , rank.riyou_amt AS riyou_amt
28
+
29
+ , rank.kousin_func AS kousin_func
30
+
31
+ , codetb.code_nm AS code_nm
32
+
33
+ , knme.menu_name AS menu_name
34
+
35
+ FROM
36
+
37
+ rank
38
+
39
+ LEFT JOIN knme
40
+
41
+ /* 指摘1:rankテーブルにmstcodeはないためNG、そもそも結合できるテーブル同士?? */
42
+
43
+ -- ON rank.mstcode = knme.mstcode
44
+
45
+ ON rank.kousin_func = knme.mstcode
46
+
47
+ LEFT JOIN codetb
48
+
49
+ /* 指摘2:下記も結合として本当に妥当?? */
50
+
51
+ ON rank.kaiin_rank = codetb.code
52
+
53
+ WHERE
54
+
55
+ /* 指摘3:rankテーブルにカラム名が「NO」のものが見当たりません(定義を全部掲載してないだけ??) */
56
+
57
+ -- rank."NO" = 1923
58
+
59
+
60
+
61
+ /* 指摘4:下記のように抽出条件を付けるとLEFT JOINの意味がありません */
62
+
63
+ codetb.type = 293
64
+
65
+ ```
66
+
67
+
68
+
69
+ ---
70
+
71
+ そもそも上記3つのテーブルってそれぞれ関連しあっているのでしょうか?
72
+
73
+ 関連し合っているなら先ずは結合条件として適切なものを選択して下さい。
74
+
75
+
76
+
77
+ 関連し合ってないなら、くっつけようがないです。
78
+
79
+ あえてくっつけるなら**直積(CROSS JOIN)**を使えばくっつけられますが、
80
+
81
+ 恐らく意味はないし、やりたいこととも異なるでしょう。
82
+
83
+
84
+
85
+ 先ずは**やりたいこと・要件の再整理**からスタートですね。