2017-03-14 4 views
0

DATEPARTを滑らかなクエリに使用して、毎月の値の合計を求めています。そうするために、私は次のクエリをしようとしています:私はそれを実行しようとするとDATEPARTをSlickクエリに使用する

val empenhado = tableReference.filter(_.cancelled.isEmpty) 
            .filter(_.unidadeGestora like unidadeGestora) 
            .filter(_.confirmado) 
            .filter(_.anoEmissao === now.get(Calendar.YEAR)) 
            .filterNot(_.id in queryEstornado) 
             .groupBy(r => datePart("mm",r.dataEmissao)) 
             .map(r => (r._1, r._2.map(r2 => r2.valorEmpenhado).sum)) 

    empenhado.run 

、私はエラーを取得する:

protected val datePart = SimpleFunction.binary[String,Date,Int]("DATEPART") 

[SQLException: Invalid parameter 1 specified for datepart.]

私のようにDATEPART関数を定義しました

と日付の属性がdataEmissaoと呼ばれ、

java.sql.Date としてマッピングされています10

どのように正しくパラメータをDATEPARTに渡すことができますか?

UPDATE

私はスリックで生成されたSQL文をチェックし、私はそれがようDATEPARTにパラメータを渡すためにしようということに気づいた:それはあるべきながら

DATEPART('mm',x2."data_emissao")

DATEPART(mm,x2."data_emissao")

どうすればいいですかの代わりに 'mm'

答えて

0
datePart("mm" 

datePart(mm 
+0

こんにちはする必要があります!それが純粋なSQLの場合は、このようになります。 SQL関数にマップされたスカラ関数を使用しています。 「mm」の代わりにmmを使用しようとすると、mmが定義されていないためコードがコンパイルされません。 – RafaelTSCS

+0

あなたは正しい領域ですが、どうすれば ''なしで滑らかにSQLに渡すことができますか? – RafaelTSCS

関連する問題