我将这些作为记录样本 2016/01 / 13,2016 / 01 / 15,2016 / 01 / 25,2015 / 01 / 14,2015 / 01 / 17,2015 / 01/28等。
关于如何计算(yyyy)1月份出现的任何建议,以便我得到2.(2016,2015)
$stocks = DB::table('inventories')
->select('inventories.*',DB::raw('count(*) as count,date_sold'))
->whereMonth('complete_sold','=', Carbon::today()->month)
->groupBy('inventories.drug_id')
->get();
答案 0 :(得分:1)
选项1:
如果您只需要计数而不是数据库中的记录,请执行以下操作:
$stocks = DB::table('inventories')
->whereMonth('complete_sold','=', Carbon::today()->month)
->groupBy('inventories.drug_id')
->count();
这样$ stock将等于找到的记录数量(例如:2
)。计数将在SQL级别执行(例如:SELECT count(*) ....
)。
选项2:
如果您稍后需要这些记录,可以这样做:
$stocks = DB::table('inventories')
->whereMonth('complete_sold','=', Carbon::today()->month)
->groupBy('inventories.drug_id')
->get();
$stockCount = $stock->count();
这样$stock
将保存查询结果(来自数据库的记录)。 $stockCount
将是一些记录。计数将执行on collection (php)。
答案 1 :(得分:0)
选项1:如果您只想要计数
$stocks = DB::table('inventories')
->whereMonth('complete_sold','=', Carbon::today()->month)
->distinct()->count("year(complete_sold)");
选项2 :如果您需要年份记录
$stocks = DB::table('inventories')
->whereMonth('complete_sold','=', Carbon::today()->month)
->select(DB::raw("year(complete_sold)"))
->groupBy(DB::raw("year(complete_sold)"))->get();