2015年4月2日木曜日

[Access] SQLでSUMIF関数を使いたい

Excel には SUMIF 関数があるが、Access の SQL関数には同等なものが見当たらない。ただし、SUM と IIF 関数を合わせて同等なものを実現すれば、副問合せを使わずに簡潔に実現できる。

(例)デジタルコンテンツを除いて在庫数を算出する。
デジタルコンテンツの在庫数はゼロとするが、これ以外は「入荷数 - 販売数」を在庫数とする。

SELECT
  商品名,
  SUM(IIF(商品区分='デジタルコンテンツ', 0, 入荷数 - 販売数)) As 在庫数
FROM 商品
GROUP BY 商品名