在下面的代码中
String sql =
"select CAST(MONTH(t.data_referencia) AS VARCHAR(2)) + '-' + CAST(YEAR(t.data_referencia) AS VARCHAR(4)) AS data, SUM(t.quantidade) AS soma from ( "+
"SELECT distinct tc.* "+
", tf.quantidade as quantidade "+
"FROM tb_faturamento_cliente as tc "+
"INNER JOIN tb_pico_faturamento tf ON tc.id_faturamento_cliente = tf.id_faturamento_cliente "+
"WHERE tf.quantidade = ( SELECT MAX(tf2.quantidade) "+
"FROM tb_pico_faturamento as tf2 "+
"WHERE tf2.id_faturamento_cliente = tf.id_faturamento_cliente ) and "+
"tc.id_cliente=2 and "+
"tc.ativo=1 "+
") t "+
"where "+
"(t.data_referencia BETWEEN '2018-01-01' AND '2018-12-01') "+
"GROUP BY CAST(MONTH(t.data_referencia) AS VARCHAR(2)) + '-' + CAST(YEAR(t.data_referencia) AS VARCHAR(4)) ";
Query query = session().createSQLQuery(sql);
query.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
List data = query.list();
我在行中收到以下错误:
List data = query.list();
这是错误:
原因:java.sql.SQLException:关键字附近的语法不正确 “有”。
休眠通过查询进行此操作
Hibernate: select CAST(MONTH(t.data_referencia) AS VARCHAR(2)) + '-' + CAST(YEAR(t.data_referencia) AS VARCHAR(4)) AS data, SUM(t.quantidade) AS soma from ( SELECT distinct tc.* , tf.quantidade as quantidade FROM tb_faturamento_cliente as with (nolock) tc INNER JOIN tb_pico_faturamento tf with (nolock) ON tc.id_faturamento_cliente = tf.id_faturamento_cliente WHERE tf.quantidade = ( SELECT MAX(tf2.quantidade) FROM tb_pico_faturamento as with (nolock) tf2 WHERE tf2.id_faturamento_cliente = tf.id_faturamento_cliente ) and tc.id_cliente=2 and tc.ativo=1 ) t where (t.data_referencia BETWEEN '2018-01-01' AND '2018-12-01') GROUP BY CAST(MONTH(t.data_referencia) AS VARCHAR(2)) + '-' + CAST(YEAR(t.data_referencia) AS VARCHAR(4))
休眠添加nolock。
你知道为什么吗?