*/ public function get(array $condition): Collection { return UseSummaryRepositoryData::makeList($this->builder($condition)->get()); } protected function builder(array $condition): Builder { $builder = parent::builder($condition); // 顧客名解決 $name = HtCustomParkingName::getBuilder()->select([ HtCustomParkingName::COL_NAME_CUSTOMER_CODE, HtCustomParkingName::COL_NAME_CUSTOMER_NAME, DB::raw('RANK() OVER(PARTITION BY customer_code ORDER BY updated_at DESC) as rank') ]); $builder ->leftJoinSub($name, static::TABLE_NAME, function (JoinClause $join) { $join->on( $this->makeColumnName([static::TABLE_SUMMARY, UseByKeySummary::COL_NAME_SUMMARY_KEY1]), $this->makeColumnName([static::TABLE_NAME, HtCustomParkingName::COL_NAME_CUSTOMER_CODE]) )->where($this->makeColumnName([static::TABLE_NAME, 'rank']), 1); }); return $builder; } protected function columns() { $name = self::TABLE_NAME; $columns = [ ...parent::columns(), SelectQueryUtil::select([$name, HtCustomParkingName::COL_NAME_CUSTOMER_CODE])->build(), SelectQueryUtil::select([$name, HtCustomParkingName::COL_NAME_CUSTOMER_NAME])->build(), ]; return $columns; } }