このクエリは、mySQLクライアントで正常に動作します。 Laravelに入れるときには、それはここでLaravelは生のSQLクエリで 'SET'を使用できませんか?
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;
を返すコードは次のとおりです。
$result = DB::connection('main')
->select("
SET @acc :=0;
SELECT a.date,@acc:[email protected]+sum AS total_shops FROM (
SELECT DATE(created_at) AS date, SUM(IF(created_at BETWEEN '2016-08-08 17:00:00' AND '2016-09-05 16:59:59',1,0)) AS sum
FROM sales_product
WHERE status = 1
AND DATE(created_at) BETWEEN '2016-08-08 17:00:00' AND '2016-09-05 16:59:59'
GROUP BY DATE(created_at)
) AS a
");
それから私は ':= 0 SET @acc' を削除しようとしました。今回は、エラーはありません。しかし、代わりにtotal_shopsがNULLとして表示されます。
結果:
array:15 [
0 => {#198
+"date": "2016-08-09"
+"total_shops": null
}
1 => {#205
+"date": "2016-08-10"
+"total_shops": null
}
2 => {#204
+"date": "2016-08-11"
+"total_shops": null
}
]
を作成します。それでも同じ構文エラーがあります。 – jap
'SET @acc:= 0;'をそのままにして、クエリの変数への参照を削除するとどうなりますか?それでもエラーが出ますか? – Callam
構文エラーです。 – jap