質問編集履歴
1
コードの部分をマークダウンに修正しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,12 +10,18 @@
|
|
10
10
|
しかしこのクエリが生のSQLなら実行できるのですが、Laravelのクエリの記法にしてLaravelで実行するとエラーになってしまいます。
|
11
11
|
|
12
12
|
〇作成した生のクエリ
|
13
|
+
|
14
|
+
|
15
|
+
```SQL
|
13
16
|
SELECT payment, count(payment) AS num, sum(price) AS total FROM
|
14
17
|
(SELECT * from `sales` where deal_date between '2021-03-28' and '2021-03-29' and payment not in (9)) AS sub
|
15
18
|
GROUP BY payment;
|
19
|
+
```
|
16
20
|
|
21
|
+
|
17
22
|
〇Laravelのクエリビルダで作成したクエリ
|
23
|
+
```Laravel
|
18
|
-
|
24
|
+
public static function getTotal()
|
19
25
|
{
|
20
26
|
$from = Carbon::yesterday('Asia/Tokyo');
|
21
27
|
$to = Carbon::today('Asia/Tokyo')->subSecond();
|
@@ -28,10 +34,15 @@
|
|
28
34
|
|
29
35
|
}
|
30
36
|
|
37
|
+
```
|
38
|
+
|
31
39
|
〇Laravelのエラー
|
40
|
+
```LaravelException
|
32
41
|
Illuminate\Database\QueryException
|
33
42
|
SQLSTATE[HY000]: General error: 2031 (SQL: SELECT payment, count(payment) AS num, sum(price) AS total from (select * from `sales` where `deal_date` between ? and ? and `payment` not in (?)) AS sub group by `payment`)
|
43
|
+
```
|
34
44
|
|
45
|
+
|
35
46
|
###確認したこと
|
36
47
|
・生のクエリは実行でき、期待するレコードが取得できる。
|
37
48
|
・Laravelのクエリビルダで$sub_query単体の実行は確認できる。しかし$sub_queryを$total_dataに組み込むと上記のエラーになる。
|