PostgreSQL - Diferencia ede registrosn query ejecutado desde java con postgres

 
Vista:
sin imagen de perfil

Diferencia ede registrosn query ejecutado desde java con postgres

Publicado por Cristian (1 intervención) el 30/06/2017 17:46:34
Estimados,

Tengo un problema que he intentado solucionar sin exito aun.
Realizo una consulta combinada con joins de 4 tablas y me retorna 3267 registros en el pgAdmin y en otros ides de conexion con postgres me dan el mismo resultado, pero, al ejecutar la misma consulta en java me retorna mas registros exactamente 3379. El problema es que son numeros y obviamente no cuadran.

He realizado hasta una funcion en postgres que retorne un recordset con el mismo resultado. En la base de datos me indica 3267 y el mismo query ejecutado desde java con 3379 registros..

Expongo el código realizado para ver si me ayudan con este problema muchas gracias de antemano.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//Conexion
Class.forName("org.postgresql.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:postgresql://192.168.0.150:5432/BaseDatos", "usuario", "clave");
//Statement st=con.createStatement();
Statement st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                        ResultSet.CONCUR_READ_ONLY ) ;
 
 
System.out.println("Se conecto");
 
String query = "select\n" +
"   conv.codigo,\n" +
"   d.sku,\n" +
"                  p.nombre,\n" +
"                  d.valorunitario,\n" +
"                  p.valultcompra,\n" +
"                  p.costopromedio,\n" +
"                  c.femision,\n" +
"                  c.orden, \n" +
"                 ((d.valorunitario - p.costopromedio) / d.valorunitario) * 100 as Margen,\n" +
"            (sum(d.cantidad)) * d.valorunitario as totalVta,\n" +
"                  c.rut, c.codigo_oc \n" +
"        from occh c,\n" +
"       occhdet d,\n" +
"        producto p,\n" +
"        par_convenio conv\n" +
"         where c.rut = d.rut and c.orden = d.orden  and  c.codigo_oc   = d.codigo_oc and  d.sku = p.sku and  conv.codigo = p.convenio and\n" +
//"         extract(year from c.femision) =2017 and \n" +
//"         extract(month from c.femision) =5 and \n" +
"         to_char(femision,'YYYYMM') ='201705' and " +
"         conv.convenio is  not null\n" +
"         group by conv.codigo,conv.convenio,\n" +
"                  d.sku,\n" +
"                  p.nombre,\n" +
"                  p.valultcompra,\n" +
"                  d.valorunitario,\n" +
"                  p.costopromedio,\n" +
"                  c.femision,\n" +
"                  c.orden,c.rut, c.codigo_oc ";
 
ResultSet rs=st.executeQuery(query);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder