PostgreSQL - Ayuda en construccion de consulta Postgresql

   
Vista:

Ayuda en construccion de consulta Postgresql

Publicado por Aldo (1 intervención) el 02/12/2014 01:54:46
Buenas tardes a todos, quisiera pedirles algún consejo para construir una consulta en postgresql. Estoy elaborando una consulta para obtener una lista de registros de detalles de planilla, filtrado por dni de empleado y mas condiciones, lo que quisiera saber es si hay una forma de poder procesar esos resultados, mas o menos de esta manera:


Screenshot-01_12_2014_07_39_24_p_m

En la imagen q muestro he realizado al consulta y en la ultima fila, hice un calculo de los montos de las final anteriores

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
(SELECT DISTINCT
  tipodocidentidad.idtipodocidentidad,
  personal.dni,
  case planillapersonal.rubrofinanciamiento when '' then '' else '00' end as rubrofinanc,
  conceptotipo.idconceptotipo,
  substr(rubrosplanilla.idrubroplanilla,5) as rubroplanilla,
  concepto.nombre,
  planilladetalle.monto
FROM
public.tipodocidentidad,
  rrhh.planilla,
  rrhh.planilladetalle,
  rrhh.planillapersonal,
  rrhh.personal,
  rrhh.concepto,
  rrhh.conceptotipo,
  rrhh.rubrosplanilla
WHERE
 tipodocidentidad.idtipodocidentidad = personal.idtipodocidentidad AND
  concepto.idconceptotipo = conceptotipo.idconceptotipo AND
  planilladetalle.idconcepto = concepto.idconcepto AND
  planilla.idplanilla = planilladetalle.idplanilla AND
  planilladetalle.idplanilla = planillapersonal.idplanilla AND
  planilladetalle.dni = personal.dni AND
  planillapersonal.dni = personal.dni AND
  rubrosplanilla.idconcepto = concepto.idconcepto AND
  rubrosplanilla.idrubroplanilla = planilladetalle.idrubroplanilla AND
  planilla.anio= '2014' AND
  planilla.mes = 1 AND
  personal.dni = '02683919'
 
  ORDER BY
 
 personal.dni ASC)
 
 UNION ALL
 
 (SELECT DISTINCT
  tipodocidentidad.idtipodocidentidad,
  personal.dni,
  case planillapersonal.rubrofinanciamiento when '' then '' else '00' end as rubrofinanc,
  9,
  '9999',
  'NETO',
  SUMANDO-RESTO AS MONTO
 
 
FROM
  public.tipodocidentidad,
  rrhh.planilla,
  rrhh.planilladetalle,
  rrhh.planillapersonal,
  rrhh.personal,
  rrhh.concepto,
  rrhh.conceptotipo,
  rrhh.rubrosplanilla,
  (SELECT SUM(planilladetalle.monto) as SUMANDO
	FROM
	    public.tipodocidentidad,
	    rrhh.planilla,
	    rrhh.planilladetalle,
	    rrhh.planillapersonal,
	    rrhh.personal,
	    rrhh.concepto,
	    rrhh.rubrosplanilla,
	    rrhh.conceptotipo
	 WHERE
	  tipodocidentidad.idtipodocidentidad = personal.idtipodocidentidad AND
	  concepto.idconceptotipo = conceptotipo.idconceptotipo AND
	  planilladetalle.idconcepto = concepto.idconcepto AND
	  planilla.idplanilla = planilladetalle.idplanilla AND
	  planilladetalle.idplanilla = planillapersonal.idplanilla AND
	  planilladetalle.dni = personal.dni AND
	  planillapersonal.dni = personal.dni AND
	  rubrosplanilla.idconcepto = concepto.idconcepto AND
	  rubrosplanilla.idrubroplanilla = planilladetalle.idrubroplanilla AND
	  planilla.anio= '2014' AND
	  planilla.mes = 1 AND
	  personal.dni = '02683919' AND
	  conceptotipo.idconceptotipo = 1) AS RESULTADO1,
 
  (SELECT SUM(planilladetalle.monto) as RESTO
	FROM
	    public.tipodocidentidad,
	    rrhh.planilla,
	    rrhh.planilladetalle,
	    rrhh.planillapersonal,
	    rrhh.personal,
	    rrhh.concepto,
	    rrhh.rubrosplanilla,
	    rrhh.conceptotipo
	 WHERE
	  tipodocidentidad.idtipodocidentidad = personal.idtipodocidentidad AND
	  concepto.idconceptotipo = conceptotipo.idconceptotipo AND
	  planilladetalle.idconcepto = concepto.idconcepto AND
	  planilla.idplanilla = planilladetalle.idplanilla AND
	  planilladetalle.idplanilla = planillapersonal.idplanilla AND
	  planilladetalle.dni = personal.dni AND
	  planillapersonal.dni = personal.dni AND
	  rubrosplanilla.idconcepto = concepto.idconcepto AND
          rubrosplanilla.idrubroplanilla = planilladetalle.idrubroplanilla AND
	  planilla.anio= '2014' AND
	  planilla.mes = 1 AND
	  personal.dni = '02683919' AND
	  conceptotipo.idconceptotipo = 2) AS RESULTADO
 
WHERE
 tipodocidentidad.idtipodocidentidad = personal.idtipodocidentidad AND
  concepto.idconceptotipo = conceptotipo.idconceptotipo AND
  planilladetalle.idconcepto = concepto.idconcepto AND
  planilla.idplanilla = planilladetalle.idplanilla AND
  planilladetalle.idplanilla = planillapersonal.idplanilla AND
  planilladetalle.dni = personal.dni AND
  planillapersonal.dni = personal.dni AND
  rubrosplanilla.idconcepto = concepto.idconcepto AND
  rubrosplanilla.idrubroplanilla = planilladetalle.idrubroplanilla AND
  planilla.anio= '2014' AND
  planilla.mes = 1 AND
  personal.dni = '02683919'
GROUP BY
  tipodocidentidad.idtipodocidentidad,
  personal.dni,
  rubrofinanc,
 resultado.resto,
 resultado1.sumando
  LIMIT 1)

Ese fue el codigo q emplee, mi duda ahora es para este caso:

Screenshot-01_12_2014_07_53_17_p_m


En esta consulta quiero hacer una fila para calcular el valor neto como en el ejemplo anterior, pero agrupandolo por idplanilla, osea que las filas que posean el mismo idplanilla se procesen y generen una fila resultado, y asi para cada idplanilla distinto.

Espero que puedan darme alguna pista de como hacerlo o quizas no se pueda hacer, gracias por su apoyo.
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

Ayuda en construccion de consulta Postgresql

Publicado por martin (48 intervenciones) el 03/12/2014 01:47:38
No entiendo cual es el problema,cual es tu duda?.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda en construccion de consulta Postgresql

Publicado por luis (20 intervenciones) el 11/03/2015 16:28:07
quieres ordenar por campo espesificos o por cuales campos'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar