2017-08-10 3 views
0

こんにちはすべて私は、この選択については、Laravelのクエリビルダを使用して行くと助けが必要ですか?私は生のSQLクエリを使用することができますが、私はそれを避けたいと思います。どのような助けもありがとうございます、事前に感謝!生のSQLをlaravelに変換する方法流暢な質問作成者

SELECT SUM(COST) FROM (
    SELECT COUNT(STOCK_ID)*PRICE COST 
     FROM STOCK ST INNER JOIN PRODUCT PDT ON PDT.PROD_ID=ST.PROD_ID 
      WHERE PROD_NAME='PENCIL' LIMIT 6 GROUP BY STOCK_ID) TB 

私はこの

private function totalprice($product_id) 
    { 
    $selltotal = 
    DB::raw("SELECT SUM(sell_rate) 
     FROM 
      (SELECT COUNT(stock_id) * stock_rate 
      FROM tbl_stock AS st 
      INNER JOIN tbl_product AS pdt ON pdt.product_id = st.produck_id 
      WHERE produck_name = 'product_id' 
      LIMIT 6) 
     GROUP BY stock_id"); 
    return $selltotal; 
    } 

のようにそれをしようとすると、このエラーがあるので、生のSQLは私があれば非常にgreatfullになりますしてください

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT SUM(sell_rate) 
FROM 
(SELECT COUNT(stock_id) * stock_rate ' at line 1 (SQL: insert into `tbl_sell` (`category_id`, `brand_id`, `product_id`, `buyer_id`, `sell_quantity`, `sell_total_price`, `sell_date`, `added_by`, `entry_time`) values (3, 5, 6, 3, 2, SELECT SUM(sell_rate) 
FROM 
(SELECT COUNT(stock_id) * stock_rate 
FROM tbl_stock AS st 
INNER JOIN tbl_product AS pdt ON pdt.product_id = st.produck_id 
WHERE produck_name = 'product_id' 
LIMIT 6) 
GROUP BY stock_id, 2017-08-11, 0, 2017-08-11 07:34:11)) 

を取得することです避ける理由私は私の問題の解決策を得る。事前に感謝します

+0

何か試しましたか?そうでなければ、これを読んでください:https://laravel.com/docs/5.4/queries;ほとんどのSQLキーワードはQuery Builderのメソッドです – iArcadia

答えて

1

こんにちは私は自分自身でそれに成功しました。いつか助けるかもしれない

private function totalprice($product_id) 
    { 
    $selltotal = DB::table('tbl_stock') 
    ->select(array(DB::raw('count(stock_id)*stock_rate'))) 
    ->where('tbl_stock.product_id', $product_id) 
    ->join('tbl_product','tbl_stock.product_id','=', 'tbl_product.product_id') 
    ->groupby('stock_id') 
    ->sum('stock_rate'); 
    return $selltotal; 
    } 
関連する問題