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'?
は
こんにちはする必要があります!それが純粋なSQLの場合は、このようになります。 SQL関数にマップされたスカラ関数を使用しています。 「mm」の代わりにmmを使用しようとすると、mmが定義されていないためコードがコンパイルされません。 – RafaelTSCS
あなたは正しい領域ですが、どうすれば ''なしで滑らかにSQLに渡すことができますか? – RafaelTSCS