teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

コードの部分をマークダウンに修正しました

2021/03/29 07:20

投稿

RS3110
RS3110

スコア3

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
- public static function getTotal()
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に組み込むと上記のエラーになる。