Autor Tema: Cambiar consulta Shape Compute a Shape Append - Ayuda  (Leído 12615 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Cambiar consulta Shape Compute a Shape Append - Ayuda
« en: Noviembre 22, 2010, 11:51:13 pm »
Tengo una consulta que utiliza 4 tablas y utiliza el SHAPE COMPUTE para agrupar y quiero pasar el codigo y utilizar el SHAPE APPEND pero me saltan varios errores y no lo he podido hacer, alguien me podria ayudar.

Código: [Seleccionar]
SQL = "
SHAPE {SELECT F.Fecha,F.Numero,D.Cantidad,D.subtotal/1.19 AS Neto,D.subtotal-neto AS IGV,
D.subtotal as totalpagar,F.CodClie,C.NomClie,D.CodProd,P.nomprod
FROM Factura F, Detalle D, Cliente C, Producto P
WHERE F.Numero=D.Numero AND F.CodClie=C.CodClie AND D.CodProd=P.CodProd
}
AS ComDetalle COMPUTE ComDetalle BY 'CodClie','NomClie'"

« última modificación: Noviembre 23, 2010, 12:26:45 pm por lucius »

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #1 en: Noviembre 23, 2010, 04:20:36 am »
Por favor edita tu consulta poniendo enter para que sea mas legible leerla porque sale el codigo como una culebra de dos metros ejje.

E indica que errores son los que te sale.
Me encuentras en YAcosta.com

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #2 en: Noviembre 23, 2010, 12:04:07 pm »
Especifica los errores. Por otro lado no es estrictamente necesario usar SHAPE para trabajar con 4 tablas en una consultas y agrupar campos.
Miguel Núñez.

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #3 en: Noviembre 23, 2010, 01:03:11 pm »
El problema que tengo es q no se la sintaxis para hacerlo con 4 tablas, solo he podido con 2 tablas, el error que sale es "error de sintaxis", no se si tengo que hacerlo anidado o que como trabajarlo con el RELATE.

'con 2 tablas
Código: [Seleccionar]
SHAPE {SELECT * FROM cabecera} AS NIVEL1
APPEND ({SELECT * FROM detalle} AS NIVEL2
RELATE idnumero TO idnumero) AS NIVEL2

Como podria trabajar con agrupaciones sin utilizar SHAPE, quiero mandar la agrupacion a un datareport, saludos
« última modificación: Noviembre 23, 2010, 01:08:19 pm por lucius »

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #4 en: Noviembre 23, 2010, 02:37:28 pm »
La cantidad de tablas no es el problema. A ver, creo que tu consulta esta al reves, checa hacerlo mas o menos con esta estructura, a mi me funciona a la perfeccion:

sqlCAB y sqlDET son funciones, lo hago por legibilidad para yo leer mas facilmente el SHAPE, pero si quieres pon el SQL todo junto
sqlCAB = "Select mi_campo as campo1, campo2... From tabla1, tabla2.. where param1 =..."
sqlDET = "Select campo1, campo2... From tabla1, tabla2.. where ..."
Código: (vb) [Seleccionar]
"SHAPE {" & sqlCAB(param1, param2) & "} AS Cabecera " & _
"APPEND ({" & sqlDET() & "} AS Detalle " & _
"RELATE campo1 to campo1) AS Detalle"

Ojo, no se porque michi, pero el campo de la Cabecera debe tener el mismo nombre que el campo detalle (campo1 to campo1)
Me encuentras en YAcosta.com

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #5 en: Noviembre 23, 2010, 03:37:44 pm »
Hola Yvan la consulta que quiero realizar es mas o menos asi, dejo la imagen pero con 3 tablas

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #6 en: Noviembre 23, 2010, 03:40:13 pm »
lo que te mande sirve para hacer eso, alli tienes cabecera y detalle. Y tambien uso DataReport, asi que: si se puede!!! si se puede!!!

Primero resuelve el tema de la sintaxis, despues de eso seguro vas a tener algun problema con el reporte, publicas los problemas para irlos resolviendo pero primero superemos la sintaxis.
Lo de 4 tablas no es el problema, yo lo tengo con 6 y 7 tablas y con inner joins y toda la madre. Son dos SQL una cabecera y otro detalle y se unen por un campo comun de igual nombre, en tu caso como en el mio el ID.
« última modificación: Noviembre 23, 2010, 04:06:34 pm por YvanB »
Me encuentras en YAcosta.com

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #7 en: Noviembre 23, 2010, 05:28:52 pm »
Divide y venceras
Prueba tu consulta cabecera y detalle por separado pues debe darte resultados. Confirma esto.
Me encuentras en YAcosta.com

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #8 en: Noviembre 24, 2010, 11:48:32 am »
La solución ya te la ha dado Yvan..! Por favor confirma..!
Miguel Núñez.

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #9 en: Noviembre 24, 2010, 03:26:36 pm »
Ya logre que funcionara, pero cuando una cabecera no tiene detalle igual la muestra pero vacia, esto no sucede con el SHAPE-COMPUTE, se puede solucionar esto o queda asi?

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #10 en: Noviembre 24, 2010, 04:11:50 pm »
mete un HAVING en tu consulta o un WHERE ALGO > 0
Me encuentras en YAcosta.com

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #11 en: Noviembre 24, 2010, 06:31:18 pm »
 :PTienes razon se me paso debido a la costumbre del shape-compute, pero que pasa si en la cabecera solo tengo 2 campos como idcliente,nomclie?
Aplicando un WHERE al hacer un filtrado por idcliente corre bien, probare con el having por que no lo he utilizado y no recuerdo bien para que era.

Muchas gracias por la ayuda, saludos
« última modificación: Noviembre 24, 2010, 10:26:03 pm por lucius »

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #12 en: Noviembre 24, 2010, 09:37:24 pm »
el having es lo mismo que el where pero para sum, avg, etc.

Usalo para el criterio aquel en el que no halla registros nada mas, tu decide el criterio
Me encuentras en YAcosta.com

lucius

  • Gigabyte
  • ****
  • Mensajes: 263
  • Reputación: +6/-5
    • Ver Perfil
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #13 en: Noviembre 25, 2010, 01:58:59 am »
Ya entendi para que se utiliza el having pero no he podido solucionar el problema.

Por ejemplo si hay un reporte de productos(idProd,nomprod,precio) por categoria(idcat,nomcat) en dicho caso la tabla categoria seria la cabecera y quiero hacer un filtro por producto, acaso esta mal mi plantiamiento por que con SHAPE COMPUTE me funcionaba bien, dejo el ejemplo haber si me corrigen para evitar espacion vacios como se muestran en la 2da imagen que deje.
Código: [Seleccionar]
Con_sql = "
SHAPE {SELECT idcat,nomcat FROM categoria} AS NIVEL1
APPEND({SELECT P.idprod,P.nomprod,P.precio,P.idcat FROM producto P"
WHERE P.idprod='" & Text1.Text & "'} AS NIVEL2
RELATE idcat TO idcat) AS NIVEL2"
« última modificación: Noviembre 25, 2010, 02:10:51 am por lucius »

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Cambiar consulta Shape Compute a Shape Append - Ayuda
« Respuesta #14 en: Noviembre 25, 2010, 05:29:01 am »
Ahora si estoy un poco jodido con el tiempo, pero si me mandas esa parte del proyecto con la bd te lo resuelvo: garantizado o me dejo de llamar Miguel Nuñez jeje.

Publica el proyecto.

En todo caso insisto que lo estas haciendo al reves, la condicional debes mandarla al SHAPE no al APPEND... estoy al vuelo, publicalo y te lo resuelvo
Me encuentras en YAcosta.com