Cara Query Group By di Yii2

Arwan Prianto Mangidi
0

 1. Menggunakan Class \yii\db\Query

$pagu = (new \yii\db\Query())
    ->select('
        sum(volume*harga) as pagu,
        ma.id,
        spp.tanggal')
    ->from('mak_alokasi ma')
    ->leftJoin('mak_dua mdua', 'mdua.kode=ma.mak_lima_empat_tiga_dua_kode')
    ->leftJoin('usul_pencairan up', 'up.mak_alokasi_id=ma.id')
    ->leftJoin('spp', 'spp.id=up.spp_id')
    ->where(['up.spp_id' => $spp_id])
    ->andWhere(['ma.unit_kerja_id' => $unitKerja->id])
    ->groupBy('ma.id')
    ->createCommand();$total_usul_spp = DataSptjb::find()->joinWith(['usulPencairan'])
    ->where(['usul_pencairan.spp_id' => $spp_id])
    ->sum('jumlah');

// Untuk query dalam BENTUK OBJECT
$pagu->fetchMode = PDO::FETCH_OBJ;

// Mengambil HASIL EKSEKUSI QUERY
$listPagu = $pagu->queryAll();


2. Menggunakan ActiveRecord pada Model

// Produk paling banyak dibeli
$mostPopular = Product::find()
    ->select(['product.*','count(order_item.id) as jumlah_terjual'])
    ->joinWith(['orderItems'])
    ->groupBy('product.id')
    ->createCommand();

$mostPopular->fetchMode = \PDO::FETCH_OBJ;
$mostPopular->queryAll();

Posting Komentar

0 Komentar
Posting Komentar (0)