• Martes 19 de Noviembre de 2024, 07:27

Autor Tema:  Sumar Horas En Sentencia Sql  (Leído 17932 veces)

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Sumar Horas En Sentencia Sql
« en: Miércoles 23 de Mayo de 2007, 02:13 »
0
Hola por aquí por este foro de Bd nuevamente

No les da rabia cuando se hace algo y luego viene el que le dio inicio y marcha al proyecto y luego de que esté todo hecho (y más cuando algunas cosas costaron hacerlas) venir a decidir que los datos mejor sean X y no Y ????

Tenía un programa que trabajaba con numeros, me costó que aceptara decimales puesto que redondeaban las sumas, etc, igual en Crystal. Pero listo, resuelto.

Ahora viene el muy...  :angry:  que es mejor (prefiere) que en vez de indicar las horas AM y PM de horas de Trabajo de un Empleado, que mejor se ingrese la "Hora de Entrada" y la "Hora de Salida" y automaticamente el programa determina las horas entre hora y hora. Ya por aquí por el foro me han ayudado a cómo hacer eso posible.

Increible que esa decisión de cambio de datos, haya cambiado todo, la ventana que lo maneja (form), su codigo (obviamnente), la tabla que lo relaciona, y desde luego, de eso no escapa el reporte, sentecias SQL nuevas, etc. Todo lo anterior hecho a esto, directo a la papelera del escritorio (por asi decirlo).

El cambio de datos ni siquiera se le ocurrio viendo el progreso del programita, sino de un archivo Excel del cual parte todo esto, es ahí cuando uno se pregunta ¿y porqué no dedujo estos cambios antes de yo haber hecho las cosas? (antes de darme el archivo), simplemente otro más que cree que todo se soluciona con un click, boton derecho y propiedades.

Perdon por lo escrito, es que es la segunda vez que me pasa algo así y ha sido con el mismo individuo, no critico los cambios, digo de que al menos los haga antes y así no hacer que lo ya hecho (en dias y/o horas) no haya valido nada. Todo esto porque la cuestion no fue agregar sino reemplazar/sustituir cosas ya hechas. Sólo sé que de volver a pasar, me voy a sentar con este señor y le voy a explicar mejor las cosas, para que no esté a diestra y siniestra cambiando las cosas a su antojo/gusto luego del trabajo ya hecho.

Bueno a lo que venía a preguntar:
Por favor ¿Sabe alguien como sumar Horas en una sentencia SQL?
He estado intentado algo con CONVERT(DateTime, campo), DATEDIFF() y SUM(DATEPART()) pero error seguido de otro, no he logrado formar algo concreto que funcione.

Como estos datos son el todo y el protagonista del programita, tengo que preguntar, dónde lo subo (cuando esté listo) para que se lo bajen porque al ayudarme a resolver estos problemas, practicamente es como si el programa fuese de todos, aun saliendo del paso de algunos problemitas antes presentados sin consultarlo por aquí, ya un par de cosas, me han ayudado a resovlerlo por aquí. Lo guardan de recuerdo  :)
Si esto es Leído por accidente, induzca al vomito

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Sumar Horas En Sentencia Sql
« Respuesta #1 en: Miércoles 23 de Mayo de 2007, 02:46 »
0
asi es esto :P

puedes seguir usando la funcion que te recomendo cpmario ( http://foros.solocodigo.com/index.php?showtopic=28885 )


<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]SELECT[/color] chl_tb.hora, chl_tb.hora2, DateDiff('n',[hora],[hora2]) AS direfencia
FROM chl_tb; <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

en access puedes usar las funciones incorporadas de la base de datos puedes guiarte con el generador de Expresiones


Saludos, y Suerte  :comp:
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Sumar Horas En Sentencia Sql
« Respuesta #2 en: Miércoles 23 de Mayo de 2007, 04:14 »
0
Cita de: "UserCode"
Hola por aquí por este foro de Bd nuevamente

No les da rabia cuando se hace algo y luego viene el que le dio inicio y marcha al proyecto y luego de que esté todo hecho (y más cuando algunas cosas costaron hacerlas) venir a decidir que los datos mejor sean X y no Y ????

Tenía un programa que trabajaba con numeros, me costó que aceptara decimales puesto que redondeaban las sumas, etc, igual en Crystal. Pero listo, resuelto.

Ahora viene el muy...  :angry:  que es mejor (prefiere) que en vez de indicar las horas AM y PM de horas de Trabajo de un Empleado, que mejor se ingrese la "Hora de Entrada" y la "Hora de Salida" y automaticamente el programa determina las horas entre hora y hora. Ya por aquí por el foro me han ayudado a cómo hacer eso posible.

Increible que esa decisión de cambio de datos, haya cambiado todo, la ventana que lo maneja (form), su codigo (obviamnente), la tabla que lo relaciona, y desde luego, de eso no escapa el reporte, sentecias SQL nuevas, etc. Todo lo anterior hecho a esto, directo a la papelera del escritorio (por asi decirlo).

El cambio de datos ni siquiera se le ocurrio viendo el progreso del programita, sino de un archivo Excel del cual parte todo esto, es ahí cuando uno se pregunta ¿y porqué no dedujo estos cambios antes de yo haber hecho las cosas? (antes de darme el archivo), simplemente otro más que cree que todo se soluciona con un click, boton derecho y propiedades.

Perdon por lo escrito, es que es la segunda vez que me pasa algo así y ha sido con el mismo individuo, no critico los cambios, digo de que al menos los haga antes y así no hacer que lo ya hecho (en dias y/o horas) no haya valido nada. Todo esto porque la cuestion no fue agregar sino reemplazar/sustituir cosas ya hechas. Sólo sé que de volver a pasar, me voy a sentar con este señor y le voy a explicar mejor las cosas, para que no esté a diestra y siniestra cambiando las cosas a su antojo/gusto luego del trabajo ya hecho.
Trabajando en relación de dependencia no creo que se pueda hacer nada :( . Pero si estás trabajando de manera independiente, de ser vos, yo le cobraría por todo el trabajo. Si tiene caprichos problema de él  :whistling:
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Sumar Horas En Sentencia Sql
« Respuesta #3 en: Miércoles 23 de Mayo de 2007, 05:34 »
0
Citar
asi es esto  :P

Gracias F_Tanori, yo sé que así es esto, bien... lo de siempre, un proyecto no es ni la sombra de lo que era al inicio al verlo en su final, pero si que hay que evitar y educar a la gente para que no nos hagan trabajar de más.

Pero imaginate, es com si se le dijese a unos obreros, coloquen el cemento y pongan el con cuadritos de marmol pintado, y luego de ese dia de trabajo decirles al siguiente, no muchachos miren cambio de planes, será piso de madera, ya luego de haberse hecho el  duro trabajo. O a que a un Arquitecto le digan, tienes que hacer otra vez el plano estructural porque cambiaron las cosas, ni modo.

Te imaginas que toquen la puerta en la oficina y diga el jefe, que necesita un balance en Excel para una reunión a las 2:30pm, y te lo dice a las 11:45am. No puedes irte y volver porque no da el tiempo, así que te quedas para hacer eso y estar listo a la hora, pero luego llega el jefe a las 2:15 y dice, que esos datos no eran, o dice cualquier cosa que hace que tengas que volverlo a hacer todo. Ok, no hay problema te dice ya que la reunion se alargará hasta las 5pm y da tiempo de hacerlo nuevamente. Pero la hora del almuerzo, ir a casa, eso se perdio y lo hecho en esa hora, se fue al caño. Muy molesto esto.

Creo que en algunos casos esto si puede evitarse, y como vuelva a suceder, pues le recordare donda van las "ies" a esta persona.

Citar
Trabajando en relación de dependencia no creo que se pueda hacer nada sad.gif . Pero si estás trabajando de manera independiente, de ser vos, yo le cobraría por todo el trabajo. Si tiene caprichos problema de él whistling.gif

El trabajo es un "triguito" (trabajo por fuera), no te preocupes, ya le informe del nuevo precio  :devil:,  ni loco hago esto sujeto al viejo precio.

Citar
puedes seguir usando la funcion que te recomendo cpmario ( http://foros.solocodigo.com/index.php?showtopic=28885 )


SQL
SELECT chl_tb.hora, chl_tb.hora2, DateDiff('n',[hora],[hora2]) AS direfencia
FROM chl_tb;


en access puedes usar las funciones incorporadas de la base de datos puedes guiarte con el generador de Expresiones


Saludos, y Suerte  :comp:

Hmmm.. no sabía que podía moldear bien (y tambien) lo del codigo en VB para una SQL, es decir, tenía el problema (a mi parecer) en tres campos distintos (VB, BD y Crystal) para resolverse, sé que existen cosas que se asemejan en sintaxis pero creo que son las ganas de ya no querer ver más este programita   :hitcomp:

Voy a probar, pero ya es muy tarde por la noche, ya es el otro día hehehe... será mañana temprano.

Muchas gracias muchachos, despues les brindo unas birras en la Taberna del Bit aquí mismo en el foro más abajo :beer:

Que la fuerza esté con ustedes/vosotros  :lightsabre:
 -_-
Si esto es Leído por accidente, induzca al vomito

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Sumar Horas En Sentencia Sql
« Respuesta #4 en: Miércoles 23 de Mayo de 2007, 15:28 »
0
Citar
SQL
Código: Text
  1.  
  2. SELECT chl_tb.hora, chl_tb.hora2, DateDiff('n',[hora],[hora2]) AS direfencia
  3. FROM chl_tb;
  4.  
  5.  

Prové algo asi (sentencia de prueba):
Código: Text
  1.  
  2. Select TotalHrsD, TotalHrsD, DateDiff('n', [TotalHrsD],[TotalHrsD]) As TotalHrsLbD From chl_tb;
  3.  
  4.  

Se ve que el mismo campo se repite, eso es porque el objetivo seria algo asi:

05:00
05:00
--------
10:00

Ahora viene algo que asusta un poco, porque es algo complicado.
Esa suma viene de irse acumulando registros mostrados en un MSFlexgrid
Si la columna tiene muchas filas pues seria algo como esto:
05:00
05:00
05:00
05:00
05:00
-------
25:00

Obviamente se ve que el resultado no puede estar en formato de hora, aunque sus datos si sean de hora. Pero esto se complica más, puesto que si llegase a existir un 05:30 entonces el resultado seria 25:30

Entonces lo que tengo que probar (y en caso de fallar preguntar por aqui) seria el intentar que el resultado sea en formato numerico decimal quedando asi:
Es decir, convertir el dato hora a numerico (pero con decimales).

05:00
05:00
05:00
05:00
05:00
-------
25

O en caso de una media hora asi:

05:00
05:00
05:00
05:30
05:00
-------
25.5 -->(sin redondeo)

Como que de formarse esto, mejor me ahorro el dolor de cabeza de cómo sería esto en las funciones de Crystal para el caso del reporte y mejor usaria la misma SQL que haria esto en VB, pero incrustandola en el reporte de Crystal y asi matar dos pajaros de un tiro.
Si esto es Leído por accidente, induzca al vomito

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Sumar Horas En Sentencia Sql
« Respuesta #5 en: Miércoles 23 de Mayo de 2007, 15:55 »
0
Tengo esto montado asi:
Código: Text
  1.  
  2. SQL2 = &#34;Select Sum(TotalHrsD) AS THrsD, Sum(TotalHrsN) AS THrsN, Sum(TotalHrsLb) As THrsLb, Sum(Clausula26) As Clau26, &#34;
  3. SQL2 = SQL2 & &#34;Sum(TotalExtD) AS THrsExtD, Sum(TotalExtN) AS THrsExtN &#34;
  4. SQL2 = SQL2 & &#34;From chl_tb &#34;
  5. SQL2 = SQL2 & &#34;Where NumEmp=&#34; & TxtNEmp.Text & &#34; And &#34;
  6. SQL2 = SQL2 & &#34;Fecha Between #&#34; & Format(DTPFecha1.Value, &#34;yyyy-mm-dd&#34;) & &#34;# And #&#34; & Format(DTPFecha2.Value, &#34;yyyy-mm-dd&#34;) & &#34;# &#34;
  7.  
  8.  

Si le pongo Convert para pasar el dato a Numerico o Float me da error.

Probé esta SQL corta y simple en Access: (Prueba)
Select Convert(Numeric(chl_tb.TotalHrsD)) From chl_tb;
Select Convert(Numeric,TotalHrsD) From chl_tb;
Select Convert(Numeric(3),TotalHrsD) From chl_tb;

Y me saca el aviso de:
La función "Convert" no está definida en la expresion, espero que sea que la sintaxis está mal escrita y no que Access no tenga soporte para ella. Es increible, no he podido conseguir una web que me detalle a CONVERT, solo verlo entre lineas de otras SQL y son otras conversiones o están en una sintaxis de Query ASP.
Si esto es Leído por accidente, induzca al vomito

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Sumar Horas En Sentencia Sql
« Respuesta #6 en: Miércoles 23 de Mayo de 2007, 21:48 »
0
la sintaxis en SQL de Convert

es Convert(tipo_de_dato,valor )

ejemplo

Código: Text
  1. Convert(varchar(20),folio)
  2.  

pero access no lo permite :P

si quieres convertir, y como te digo puedes usar la funciones incorporadas de la base de datos, (incluso de usuario)

por ejemplo:

Citar
CStr(valor)
CBool(valor)
CDbl(valor)
CInt(valor)
CDate(valor)
Str(valor)
Int(valor)
Val(valor)

etc todas las funciones disponibles :P

ahora aplicando

Código: Text
  1.  
  2.  DateDiff('n', [TotalHrsD],[TotalHrsD]) As TotalHrsLbD
  3.  

[dohtml]
<table border=1>
         <tbody><tr class="trbgeven">
            <th>Valor</th>
            <th>Descripción</th>
         </tr>
         <tr class="trbgodd">
            <td>yyyy</td>

            <td>Año</td>
         </tr>
         <tr class="trbgeven">
            <td>q</td>
            <td>Trimestre</td>
         </tr>
         <tr class="trbgodd">

            <td>m</td>
            <td>Mes</td>
         </tr>
         <tr class="trbgeven">
            <td>y</td>
            <td>Día del año</td>
         </tr>

         <tr class="trbgodd">
            <td>d</td>
            <td>Día</td>
         </tr>
         <tr class="trbgeven">
            <td>w</td>
            <td>Día de la semana</td>

         </tr>
         <tr class="trbgodd">
            <td>ww</td>
            <td>Semana</td>
         </tr>
         <tr class="trbgeven">
            <td>h</td>

            <td>Hora</td>
         </tr>
         <tr class="trbgodd">
            <td>n</td>
            <td>Minutos</td>
         </tr>
         <tr class="trbgeven">

            <td>s</td>
            <td>Segundos</td>
         </tr>
      </tbody></table>
[/dohtml]

'n' indica que es en minutos entonces

05:00
05:00
--------
      0

la diferencia son 0 pues es exactamente la misma hora

en el caso de

05:30
05:00
-------
     30

como quedamos si ejecutas la funcion DateDiff con el parametro 'n' (en minutos) entonces todas las diferencias seran en minutos

al final sumas todos los minutos  y los divides entre 60 y sacas las horas y de das formato de hora

aunque seria conveniente sacar diferencias en la unidad mas pequeña ('s') para despues convertirlos en horas y no perder los segundos (que pueden llegar a ser horas)

Espero te sea de ayuda

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Sumar Horas En Sentencia Sql
« Respuesta #7 en: Miércoles 23 de Mayo de 2007, 23:19 »
0
Tremendo detalles con el post, ahora le vengo yo  B)

Bueno en la tabla tengo estos dos registros con estos datos con intenciones de que exista alguna suma de ellos:



Hice una prueba con esto haber que arrojaba:
Código: Text
  1.  
  2. Select DateDiff('h', [TotalHrsD], [TotalHrsD]) As TotalHrsLbD From chl_tb;
  3.  
  4.  

Pero sea colocando 'n' para minutos o 'h' para horas (5+4=9) siempre sale un 0:


Esta suma debe estar presente tanto en la ventana que por los momentos no muestra nada de eso:


Y en el reporte de la misma que tampoco tiene nada de eso aun, lo cual deberia estar al final de las columnas indicadas, les faltan esos mismos toltales:
Con la misma SQL, ya podría incrustarla en el reporte el cual la generaria la cargarse.
]

No sé que tan obligadas sean esas columnas de datos, ojala no sea tan necesaria y puedan omitirse   &lt;_&lt;
Si esto es Leído por accidente, induzca al vomito

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Sumar Horas En Sentencia Sql
« Respuesta #8 en: Jueves 24 de Mayo de 2007, 02:39 »
0
Cita de: "UserCode"
Tremendo detalles con el post, ahora le vengo yo  B)

Bueno en la tabla tengo estos dos registros con estos datos con intenciones de que exista alguna suma de ellos:



Hice una prueba con esto haber que arrojaba:
Código: Text
  1.  
  2. Select DateDiff('h', [TotalHrsD], [TotalHrsD]) As TotalHrsLbD From chl_tb;
  3.  
  4.  


No sé que tan obligadas sean esas columnas de datos, ojala no sea tan necesaria y puedan omitirse   &lt;_&lt;


bueno, uno de tus problemas pricipales esque andas confundido

DateDiff ---> digamos que significa Diferencia de Fechas en español y en el mismo español (o castellando para que no haya lios despues con eso :P) Diferencia hablando "matematicamente" significa Resta :P

entonces si vemos la siguiente funcion que estas aplicando esta asi

Código: Text
  1. DateDiff('h', [TotalHrsD], [TotalHrsD]) as TotalHrsLbD
  2.  

si lo vemos con datos seria asi

DateDiff('h', 05:00, 05:00) y su resultado es 0 ya que no hay horas('h') de diferencia
y los parametros que le estas colocando es la misma columna por lo cual siempre te dara 0 sea el valor que sea.

Los campos calculados como en esta caso TotalHrsLbD las funciones o formulas actuan sobre el registro no sobre la tabla

es como tener esto:

Código: Text
  1. select cantidad,precio,([cantidad]*[precio]) as Importe from ventas
  2.  

[dohtml]<table border=1>
<tr><td>cantidad </td><td>Precio</td><td>Importe </td></tr>
<tr><td>10</td><td>50</td><td>500</td></tr>
<tr><td>6</td><td>90</td><td>540 </td></tr>
<tr><td>4</td><td>210 </td><td>860 </td></tr>
</table>[/dohtml]

el calculo del importe aplica por registro lo mismo esta pasando con las horas en tu caso

lo que yo sugeria hacer es

Código: Text
  1. SELECT  (Sum(DateDiff('n',[hora],[hora2]))/60) AS Total_horas
  2. FROM chl_tb Where numemp='1000' ....los filtros necesario
  3.  

calcular la diferencia en minutos (es mejor en segundos para obtener el dato mas preciso) hacer la suma de todos y luego sacar su equivalente en horas

Espero te sirva

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Sumar Horas En Sentencia Sql
« Respuesta #9 en: Jueves 24 de Mayo de 2007, 05:41 »
0
Caramba, DateDiff entonces no me sirve puesto que yo sumo los mismos o distintos datos de un mismo campo_nombre  :(

bueno... mañana comienzo nuevamente a ver con qué puedo hacerlo  :lightsabre:

 :good:
Si esto es Leído por accidente, induzca al vomito

jarvizu

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Sumar Horas En Sentencia Sql
« Respuesta #10 en: Lunes 25 de Febrero de 2008, 23:42 »
0
Cita de: "UserCode"
Hola por aquí por este foro de Bd nuevamente

No les da rabia cuando se hace algo y luego viene el que le dio inicio y marcha al proyecto y luego de que esté todo hecho (y más cuando algunas cosas costaron hacerlas) venir a decidir que los datos mejor sean X y no Y ????

Tenía un programa que trabajaba con numeros, me costó que aceptara decimales puesto que redondeaban las sumas, etc, igual en Crystal. Pero listo, resuelto.

Ahora viene el muy...  :angry:  que es mejor (prefiere) que en vez de indicar las horas AM y PM de horas de Trabajo de un Empleado, que mejor se ingrese la "Hora de Entrada" y la "Hora de Salida" y automaticamente el programa determina las horas entre hora y hora. Ya por aquí por el foro me han ayudado a cómo hacer eso posible.

Increible que esa decisión de cambio de datos, haya cambiado todo, la ventana que lo maneja (form), su codigo (obviamnente), la tabla que lo relaciona, y desde luego, de eso no escapa el reporte, sentecias SQL nuevas, etc. Todo lo anterior hecho a esto, directo a la papelera del escritorio (por asi decirlo).

El cambio de datos ni siquiera se le ocurrio viendo el progreso del programita, sino de un archivo Excel del cual parte todo esto, es ahí cuando uno se pregunta ¿y porqué no dedujo estos cambios antes de yo haber hecho las cosas? (antes de darme el archivo), simplemente otro más que cree que todo se soluciona con un click, boton derecho y propiedades.

Perdon por lo escrito, es que es la segunda vez que me pasa algo así y ha sido con el mismo individuo, no critico los cambios, digo de que al menos los haga antes y así no hacer que lo ya hecho (en dias y/o horas) no haya valido nada. Todo esto porque la cuestion no fue agregar sino reemplazar/sustituir cosas ya hechas. Sólo sé que de volver a pasar, me voy a sentar con este señor y le voy a explicar mejor las cosas, para que no esté a diestra y siniestra cambiando las cosas a su antojo/gusto luego del trabajo ya hecho.

Bueno a lo que venía a preguntar:
Por favor ¿Sabe alguien como sumar Horas en una sentencia SQL?
He estado intentado algo con CONVERT(DateTime, campo), DATEDIFF() y SUM(DATEPART()) pero error seguido de otro, no he logrado formar algo concreto que funcione.

Como estos datos son el todo y el protagonista del programita, tengo que preguntar, dónde lo subo (cuando esté listo) para que se lo bajen porque al ayudarme a resolver estos problemas, practicamente es como si el programa fuese de todos, aun saliendo del paso de algunos problemitas antes presentados sin consultarlo por aquí, ya un par de cosas, me han ayudado a resovlerlo por aquí. Lo guardan de recuerdo  :)
Nadamas pase a criticar... con buenas intenciones aclaro.

Usercode, en ocasiones el usuario o quien te contrata tiene la idea conceptual de lo que necesita, es funcion del desarrollador tener la vision de lo que en realidad necesita el cliente, esta vision debe enfocarse a la idea central del requerimiento, adentrandonse a los detalles del negocio, no se si me explico, pero es basicamente lo que debe hacer el analista.

He conocido a programadores que me sorprende la capacidad para codificar aplicaciones, pero solamente saben codificar lo que se les pide, "crea una ventana que sume dos mas dos", pero nunca proponen "que te parece si te hago una ventana con una calculadora"...

Es un consejo que puedo compartirte, analisis, primero conceptual despues detallado, esto te evitara mil dolores de cabeza, siento no haber sido de ayuda en el punto central del post. (tengo 20 años como analista y desarrollador de aplicaciones).