1

テーブル内の 2 つの値のパーセンテージを計算し、それを列として選択する方法はありますか? それが可能であることは知っていますが、特に ZF2 コンテキストで可能かどうかを知りたいです。

ZF2 アプリケーションで、db (SQL Server) から大量のデータをフェッチする select を使用しています。このクエリは、空きディスク容量 (テーブル内の列) で並べ替えたいテーブル "ライブラリ" に関するものです。しかし、空き容量の絶対量ではなく、総ディスク容量に対するパーセンテージで並べ替えたいと思います。

だから私は次のようなことを意味します

libraries.freeSpace / libraries.totalSpace as 'percentage'

ただし、ZF2 選択内。これは現在のクエリです:

$resultSet = $this->tableGateway->select(function(Select $select) use($report){
    $select->where('id = ' . $report[0]->customer)
    ->order('freeSpace', 'asc');
});

e: 答えます。

モデルに Zend\Db\Sql\Expression を使用します。

列を選択に追加します。

$select->columns(array(
    'percentage' => new Expression('cast(libraries.freeSpace') as float / cast.('libraries.totalSpace') as float', false);
4

1 に答える 1