在Clojure sQL查询中获取HAVING子句

时间:2011-10-19 03:48:17

标签: clojure clojureql

我正在尝试在ClojureQL中构建以下查询:

SELECT ixIso, MIN(IF(dtDespatched, fQuantity, 0)) AS quantity
  FROM IsoItem WHERE fQuantity > 0
  GROUP BY ixIso
  HAVING quantity < 1

我一直在尝试使用以下代码的变体,基于off this IRC log找到它。

(-> (cql/table DB :IsoItem)
    (cql/select (cql/where (> :fQuantity 0)))
    (cql/aggregate [[ "MIN(IF(IsoItem.dtDespatched, IsoItem.fQuantity, 0))" :as :quantity]]
                   [:ixIso] )
    (cql/select (cql/where (< :quantity 1))))

但是,它一直给我的查询是:

SELECT IsoItem.ixIso,MIN(IF(IsoItem.dtDespatched, IsoItem.fQuantity, 0)) AS quantity FROM IsoItem WHERE (fQuantity > 0) AND (quantity < 1) GROUP BY IsoItem.ixIso

我觉得我必须遗漏一些如此基本的东西。

1 个答案:

答案 0 :(得分:1)

似乎它可能是ClojureQL本身的一个错误,我已经更新了我的project.clj以包含ClojureQL 1.1.0-SNAPSHOT而不是1.0.0并且它已经纠正了这个问题。