データ
- history Table
-- 部材ID
-- 使用数
- item Table
-- 部材ID
-- 部材金額
やりたいこと
ヒストリーテーブルの使用数と
部材テーブルの金額を掛けた金額を
クエリビルダにて取得したい。
(リレーション先カラムと元カラムの処理方法を知りたい)
Raw SQL
SELECT sum(i.item_price * his.`add`) as use_sum FROM useitem_history AS his, items AS i WHERE his.item_id = i.item_id and DATE( his.created_at ) = CURDATE();
Eloquent
$hoge = $useHis ->with(['item' => function ($q) { $q->select('item_price', 'item_id'); }]) // --------------------------------------------- // ここでwithで取得したカラムを指定して処理を行いたいが // ->sum(), ->select() メソッドが ヒストリーテーブル対象となるため // item_price, items.item_priceの情報での処理ができない // // Column not found: 1054 Unknown column 'item' in // 'field list' (SQL: select `use_num`, `item` from // `useitem_history` where DATE( created_at ) = CURDATE() - 1) // --------------------------------------------- ->whereRaw('DATE( created_at ) = CURDATE() - 1') ->get();
質問サイト、公式ドキュメント等漁ってみましたが力及びませんでした、、
一旦全量データ取得してからループ処理、もしくは生SQLでの取得も考えましたが、
これまでも類似問題でつまずいたことが何度かあったので質問として投稿しました。
ご教授いただければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/24 00:58