如何在Eloquent中使用原始选择?

时间:2017-03-08 08:47:05

标签: mysql sql laravel eloquent illuminate-container

我的SQL是这样的:

SELECT
  NAME,
  PLACE,
  ETC,
  format(((sum((AMOUNT * U_PRICE)) - ((sum((AMOUNT * U_PRICE)) * 20) / 100)) * 1.18),2) AS TOTAL_PRICE
FROM
  THE_TABLE

我的Eloquent查询是:

theTable::select(
    'NAME',
    'PLACE',
    'ETC',
    'format(((sum((AMOUNT * U_PRICE)) - ((sum((AMOUNT * U_PRICE)) * 20) / 100)) * 1.18),2) AS TOTAL_PRICE'
)
->get();

但它不起作用,因为Eloquent将其解释为select name, place, etc, format sum from the_table

我已经特意使用DB::raw,但后来说它没有预料到对象。

theTable::select(
    'NAME',
    'PLACE',
    'ETC',
    DB::raw('format(((sum((AMOUNT * U_PRICE)) - ((sum((AMOUNT * U_PRICE)) * 20) / 100)) * 1.18),2) AS TOTAL_PRICE')
)
->get();

那么,如何在Eloquent中使用原始SELECT语句?

1 个答案:

答案 0 :(得分:2)

使用这种方式

private Word.Table getInvisibleTable(long hash , Word.Tables tablesRec) {
    Word.Tables docTables = Globals.ThisAddIn.Application.ActiveDocument.Tables;
    foreach (Word.Table thisTable in docTables) {
        if (thisTable.Tables.Count > 0) {
            this.getInvisibleTable(hash, thisTable.Tables);
        } else if (thisTable.Descr == hash.ToString()) {
            return thisTable;
        }
    }
    return null;
}