質問編集履歴
6
再度修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -78,10 +78,7 @@
|
|
78
78
|
'period' => string '前期' (length=6)
|
79
79
|
'fisperiod' => string '2015年6月期' (length=14)
|
80
80
|
|
81
|
-
|
82
81
|
```ここに言語を入力
|
83
|
-
コード
|
84
|
-
|
85
82
|
table $wpdb->zaimumaster
|
86
83
|
|
87
84
|
array (size=3)
|
@@ -113,5 +110,4 @@
|
|
113
110
|
'period' => string '前期' (length=6)
|
114
111
|
'fisperiod' => string '2016年6月期' (length=14)
|
115
112
|
'intperiod' => string '201606' (length=6)
|
116
|
-
|
117
113
|
```
|
5
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -80,6 +80,8 @@
|
|
80
80
|
|
81
81
|
|
82
82
|
```ここに言語を入力
|
83
|
+
コード
|
84
|
+
|
83
85
|
table $wpdb->zaimumaster
|
84
86
|
|
85
87
|
array (size=3)
|
4
値を取得できましたが、想定とは異なる数値を取得しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -36,4 +36,80 @@
|
|
36
36
|
where句でsecidとmax条件を絞るような方法はダメなのでしょうか?
|
37
37
|
いろいろ調べたのですが、うまくいかなかったため、ご質問させていただきました。
|
38
38
|
|
39
|
-
よろしくお願い申し上げます。
|
39
|
+
よろしくお願い申し上げます。
|
40
|
+
|
41
|
+
---------------------------
|
42
|
+
以下、追加の状況
|
43
|
+
A.ichi様にご教示頂いた方法で、データを取得することができたのですが、幾つかのカラムについて
|
44
|
+
想定していないデータを持ってきてしまいます。
|
45
|
+
実際のコードとテーブルの方がご理解いただきやすいと思いましたので
|
46
|
+
いかに記載します。
|
47
|
+
|
48
|
+
quote.phpで取得した配列の結果の結果をごらんください
|
49
|
+
'xki' => string '28' (length=2)
|
50
|
+
'fisperiod' => string '2015年6月期' (length=14)
|
51
|
+
|
52
|
+
について、table $wpdb->zaimumasterの配列(テーブル)にある通り
|
53
|
+
本来はMAX値の201606のレコードであれば
|
54
|
+
'xki' => string '30' (length=2)
|
55
|
+
'fisperiod' => string '2016年6月期' (length=14)
|
56
|
+
を持ってこなければならないのに、intperiodが
|
57
|
+
201512のMIN値のものを持ってきます。
|
58
|
+
重ねてで申し訳ございませんが、よろしくお願い申し上げます。
|
59
|
+
|
60
|
+
```
|
61
|
+
quote.php
|
62
|
+
$sql1 = $wpdb->prepare("SELECT*FROM $wpdb->zaimumaster t1 JOIN (SELECT secid,xki,fisperiod,max(intperiod) intperiod
|
63
|
+
FROM $wpdb->zaimumaster GROUP BY secid) t2 using(secid,intperiod) where t1.secid=%d",$secid);
|
64
|
+
$rows1 = $wpdb->get_results(($sql1), ARRAY_A);
|
65
|
+
var_dump($rows1);
|
66
|
+
```
|
67
|
+
```ここに言語を入力
|
68
|
+
quote.phpで取得した配列の結果
|
69
|
+
|
70
|
+
array (size=1)
|
71
|
+
0 =>
|
72
|
+
array (size=25)
|
73
|
+
'secid' => string 'ZZZZ' (length=4)
|
74
|
+
'intperiod' => string '201606' (length=6)
|
75
|
+
'id' => string '3' (length=1)
|
76
|
+
'name' => null
|
77
|
+
'xki' => string '28' (length=2)
|
78
|
+
'period' => string '前期' (length=6)
|
79
|
+
'fisperiod' => string '2015年6月期' (length=14)
|
80
|
+
|
81
|
+
|
82
|
+
```ここに言語を入力
|
83
|
+
table $wpdb->zaimumaster
|
84
|
+
|
85
|
+
array (size=3)
|
86
|
+
0 =>
|
87
|
+
array (size=25)
|
88
|
+
'id' => string '1' (length=1)
|
89
|
+
'name' => null
|
90
|
+
'xki' => string '28' (length=2)
|
91
|
+
'secid' => string 'ZZZZ' (length=4)
|
92
|
+
'period' => string '3期前' (length=7)
|
93
|
+
'fisperiod' => string '2015年6月期' (length=14)
|
94
|
+
'intperiod' => string '201506' (length=6)
|
95
|
+
1 =>
|
96
|
+
array (size=25)
|
97
|
+
'id' => string '2' (length=1)
|
98
|
+
'name' => null
|
99
|
+
'xki' => string '29' (length=2)
|
100
|
+
'secid' => string 'ZZZZ' (length=4)
|
101
|
+
'period' => string '2期前' (length=7)
|
102
|
+
'fisperiod' => string '2015年12月期' (length=15)
|
103
|
+
'intperiod' => string '201512' (length=6)
|
104
|
+
|
105
|
+
2 =>
|
106
|
+
array (size=25)
|
107
|
+
'id' => string '3' (length=1)
|
108
|
+
'name' => null
|
109
|
+
'xki' => string '30' (length=2)
|
110
|
+
'secid' => string 'ZZZZ' (length=4)
|
111
|
+
'period' => string '前期' (length=6)
|
112
|
+
'fisperiod' => string '2016年6月期' (length=14)
|
113
|
+
'intperiod' => string '201606' (length=6)
|
114
|
+
|
115
|
+
```
|
3
再度、修正いたしました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -16,13 +16,13 @@
|
|
16
16
|
```ここに言語を入力
|
17
17
|
$secid=100;
|
18
18
|
$sql1 = $wpdb->prepare("SELECT * FROM $wpdb->Atable WHERE secid=%d AND
|
19
|
-
|
19
|
+
sales=(SELECT MAX(sales) from Atable)",$secid);
|
20
20
|
|
21
21
|
*wordpressの$wpdbクラスを利用していてますが、通常のSQL文やPDOの記法でのご回答でも構いません。
|
22
22
|
通常のPDOであれば以下のようになりますでしょうか。
|
23
23
|
|
24
24
|
$sql1 = prepare("SELECT * FROM Atable WHERE secid=:secid AND
|
25
|
-
|
25
|
+
sales=(SELECT MAX(sales) from Atable));
|
26
26
|
stmt->bindValue(':secid',$secid,PDO::PARAM_STR);
|
27
27
|
|
28
28
|
|
2
誤りを修正いたしました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -9,8 +9,8 @@
|
|
9
9
|
200 100
|
10
10
|
300 1000
|
11
11
|
```
|
12
|
-
ここでsecidカラムの中で100のgroupに属する最大のsalesのレコードを取得したいです。(つまりsecid:
|
12
|
+
ここでsecidカラムの中で100のgroupに属する最大のsalesのレコードを取得したいです。(つまりsecid:100,
|
13
|
-
1 sales:
|
13
|
+
1 sales:500のレコードです)
|
14
14
|
これについて
|
15
15
|
|
16
16
|
```ここに言語を入力
|
1
内容の誤り、およびエラー結果(なし)を表示しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
200 100
|
10
10
|
300 1000
|
11
11
|
```
|
12
|
-
ここでsecidカラムの中で100のgroupに属する最大のsalesのレコードを取得したいです。(つまりsecid:
|
12
|
+
ここでsecidカラムの中で100のgroupに属する最大のsalesのレコードを取得したいです。(つまりsecid:500,
|
13
13
|
1 sales:200のレコードです)
|
14
14
|
これについて
|
15
15
|
|
@@ -28,6 +28,11 @@
|
|
28
28
|
|
29
29
|
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wpdb_Class
|
30
30
|
```
|
31
|
+
```ここに言語を入力
|
32
|
+
var_dumpの結果
|
33
|
+
array (size=0)
|
34
|
+
empty
|
35
|
+
```
|
31
36
|
where句でsecidとmax条件を絞るような方法はダメなのでしょうか?
|
32
37
|
いろいろ調べたのですが、うまくいかなかったため、ご質問させていただきました。
|
33
38
|
|