FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
Ayuda con consulta
Hola a todos
escribo para ver quien me puede ayudar tengo 4 tablas carro idcarro nocarro indicecons 1 TSA-590 10 2 TSA-250 20 hojaruta idhojaruta idcarro nohojatuta chofer 1 1 150 Juan 2 2 151 Pedro deschojaruta iddeschojaruta idhojaruta origen destino kmrecorrido fecha 1 1 Las Tunas Holguin 74 1/09/2012 2 1 Holguin Las Tunas 74 1/09/2012 3 2 Las Tunas Santuago 204 2/09/2012 consumo idconsumo idcarro consumo chip fecha 1 1 10 150 1/09/2012 2 2 50 12 1/09/2012 3 1 10 20 2/09/2012 4 2 10 25 2/09/2012 5 2 40 50 3/09/2012 necesito hacer una consulta que me selecione por carro los km recorrido y el consumo en un rango de fecha 1/9/2012-30/9/2012 algo asi carro indicecons kmrecorrido consumo TSA-590 10 148 20 TSA-250 20 204 100 este es el resultado que me deveria dar y estoy utilizando esta consulta pero me devuelve los resultados incorrectamente |
#2
|
||||
|
||||
He traducido tu SQL utilizando JOINs.
El probelma, me parece, radica en que no tienes unido de ninguna manera el consumo con hojaruta. En este caso, el SELECT te devolverá todos los elementos de consumo y todos los elementos de hojaruta y todas sus posibles combinaciones. Si luego de filtrar entre fechas obtienes: consumo (1, 2, 3) hojaruta (a, b, c) El select te devolverá: (1-a, 1-b, 1-c, 2-a, 2-b, 2-c, 3-1, 3-b, 3-c) Supongo que la mejor opción, puesto que no hay relación entre consumo y hojaruta es hacer dos SELECTs dentro de uno: Algo así:
|
#3
|
|||
|
|||
hola duilioisola
he probado el codigo que me sugeriste pero me da error en sintaxis |
#4
|
|||
|
|||
Respuesta "Ayuda con consulta"
Buen día Salnhack, te paso un select para probar
SELECT C.IDCARRO, C.NOCARRO, C.INDICECONS, SUM(DHR.KMRECORRIDO), SUM(CO.CONSUMO) FROM CARRO C INNER JOIN HOJARUTA HR ON HR.IDCARRO = C.IDCARRO INNER JOIN DESCHOJARUTA DHR ON DHR.IDHOJARUTA = HR.IDHOJARUTA INNER JOIN CONSUMO CO ON CO.IDCARRO = C.IDCARRO WHERE CO.FECHA BETWEEN :FECHA1 AND :FECHA2 GROUP BY C.IDCARRO, C.NOCARRO, C.INDICECONS ORDER BY C.IDCARRO Saludos... Última edición por hoyosfelix fecha: 13-09-2012 a las 18:10:13. |
#5
|
||||
|
||||
Recuerda poner los tags al código fuente, ejemplo:
Y te ahorras todo el trabajo que has hecho poniendo colores por palabras, tipos de letras, etc. Gracias |
#6
|
|||
|
|||
Respuesta "Ayuda con consulta"
Buena tarde,
Gracias por el consejo. Realmente, intenté resaltar la sintaxis de SQL, pero no entendía muy bien cómo funcionaba, ahora me quedó claro. En la próxima entrada voy a utilizar correctamente los tag's. Saludos. |
#7
|
||||
|
||||
Gracias
|
#8
|
|||
|
|||
Cita:
tengo poco conocimiento de SQL solo lo basico por eso me resulta dificil lograr el resultado que espero |
#9
|
||||
|
||||
Cita:
Se parará en una línea, indicará algo más, el mensaje completo y exacto dirá otra cosa, pégalo aquí... no somos adivinos |
#10
|
|||
|
|||
Respuesta "Ayuda con consulta"
Hola,
Para verificar que la consulta traiga algún resultado se debe probar primero en una herramienta de SQL, por ejemplo el FlameRobin. Allí en vez de :fecha1 y :fecha2 podés cambiar por un rango que tengas en tu tabla consumo, ejemplo:
Si devuelve un resultado significa que la consulta está correcta y luego ya se puede pasar al SQL de tu componente Query en Delphi. Es cierto lo que dice Casimiro Notevi, sería interesante saber en dónde estás corriendo la consulta, si en Delphi, en FlameRobin u otro; si tuvieramos más datos podríamos ir directo al problema. Saludos. Última edición por Casimiro Notevi fecha: 13-09-2012 a las 22:28:21. |
#11
|
|||
|
|||
La consulta la estoy corriendo en deplhi y el error que me muestra es el que adjunto
|
#12
|
||||
|
||||
Parece que no has tecleado bien la consulta, ¿puede ser?, pon el código que lo veamos.
Seguimos sin ser adivinos |
#13
|
|||
|
|||
este es el codigo completo que le paso al query
|
#14
|
|||
|
|||
Respuesta "Ayuda con consulta"
Hola, prueba de esta manera:
Fijate en los espacios al inicio y final de cada vsql, eso te asegura que al concatenar tengas separada tu sql. Saludos. Última edición por Casimiro Notevi fecha: 13-09-2012 a las 23:43:51. Razón: Aparece en una sola línea, no formatea al estilo Delphi. |
#15
|
||||
|
||||
Ves, así es más fácil, es que no tenemos bola mágica
Te falta poner un espacio antes o después, como quieras, en cada línea, para que luego no queden todas "pegadas" EDITO: Lo que ha dicho hoyosfelix, no lo había visto. |
#16
|
||||
|
||||
hoyosfelix, para que no salga el código "hecho un desastre" te aconsejo que primero envies el mensaje y seguidamente lo edites. El problema es que si le das a "previsualizar" antes de "enviar", se descuadra como te ha salido a ti.
Le tenemos que dar un repaso a la configuración del vbulletin |
#17
|
||||
|
||||
Cita:
// Saludos |
#18
|
||||
|
||||
Cierto, solamente hace falta cuando se usa el método escrito por hoyosfelix.
Me he confundido porque yo suelo usar sql.text:
|
#19
|
|||
|
|||
Hola a todos he probado la via de hoyosfelix pero me sigue dando el mismo error
Error en sintaxis falta operador http://clubdelphi.com/foros/attachme...9&d=1347566837 Última edición por Salnhack fecha: 14-09-2012 a las 15:04:33. |
#20
|
|||
|
|||
Respuesta "Ayuda con consulta"
Buen día, vamos por paso.
1º Quiero saber si la consulta funciona, favor probar en el diseñador de consulta SQL de Access, ejecutarlo y ver resultados. 2º Podriamos ver de nuevo tu sintaxis en Delphi. 3º En tu form poner 2 componentes TDateTimePicker que se llamen fecha1 y fecha2, que vamos a pasar como parámetro a tu consulta. 4º Luego, reemplazar tu código actual por el siguiente, ya que veo en el código anterior que las variables que se pasan a la SQL no son fechas, son enteros pero no fecha de la forma '01/09/2012' y el SQL te lanza el error ya que espera una fecha válida.
Saludos. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ayuda con consulta SQL | n03l | SQL | 4 | 18-04-2007 22:03:40 |
Ayuda con consulta | raco | Varios | 6 | 06-04-2005 02:14:25 |
Ayuda con consulta SQL | tgsistemas | SQL | 9 | 18-02-2004 16:14:07 |
Ayuda con consulta | JorgeBec | SQL | 7 | 21-10-2003 20:25:16 |
ayuda en consulta | bismarito | Firebird e Interbase | 1 | 29-07-2003 00:40:45 |
|