FoxPro/Visual FoxPro - ¿Se Puede con un SELECT?

 
Vista:

¿Se Puede con un SELECT?

Publicado por javier (90 intervenciones) el 11/01/2002 06:02:42
Hola a todos tengo el siguiente problemilla con un sistema de ventas
dispongo de las siguientes tablas:

Boletas Ventas
------- ------- ------
-
Cod_Boleta cod_Boleta
Cod_Cliente cod_vale_
Total_boleta cod_producto
total_venta
cod_cliente
Fecha_venta

La tabla ventas.dbf mantiene una clave compuesta entre cod_boleta y
cod_vale, permitiendo poder repetir el cod_boleta y el cod_vale pero no la
conbinacion de ambos. Un conjunto de determinados vales van a formar una
boleta

por ejemplo: cod boleta cod_vale
1 1
1 2
1 5
3 4
3 6

Necesito hacer una consulta que me entrege el siguiente detalle

cod_boleta , sum(vale) = total de la boleta, y un detalle de todos los
productos , el unico proble ma es que tiene que ser entregado en forma de
columnas. me explico

Cos_boleta,total_Boleta(Suma de los valores de los vales), Produco_1,
producto_2, Producto_3,etc,etc Aqui esdonde empieza a salir humo de mi
cerebo no se como reunir todos los producto para una sola boleta y
entregarlos en una sola fila.

Si alguien me puede ayudar Por favor.

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

RE:¿Se Puede con un SELECT?

Publicado por Martín R. Comparetto (67 intervenciones) el 11/01/2002 18:30:11
Hola!!!
Mira, por lo que entiendo, los productos estan en otra tabla y cada producto es un registro. Si es asi, no vas a poder hacerlo con un select, ya que cada columna de un select tiene que ser un campo o un valor constante.
Suerte!!!
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

RE:¿Se Puede con un SELECT?

Publicado por jeinner (67 intervenciones) el 12/01/2002 00:45:23
Bueno, eso está algo complicado, pero aqí van unas ideas, quizá algo de esto te de una luz, son ideas pensadas al azar, y cre que te pueden ser de utilidad.

Lo primero sería hacer un reporte que hale la informacion de una tabla como la siguiente:

codigo_boleta,
costo_boleta,
hilera string(254) por ejemplo y aquí se suman todas las hileras con los códigos de productos, la otra manera sería crear un archivo con X cantidad de campos de productos, p1, p2, p3, p4, p5, p6, ....
aquí es donde está la limitación, aunque se puede crear una tabla
Llamemos a esta tabla tabla1

Luego haces un sql, algo como el siguiente, para obtener los totales.
selec boleta.boleta,
sum(valores)
From boleta, valores
where (boletas.codigo = valores.codigo) and (tusfiltros)
group by boleta
into sqlresultado

Después asignas manualmente los valores a la tabla que creaste arriba.

Seguidamente recorres el archivo con:
contadorproductos=1
select valores
scan where (tusfiltros)
If locate(valores.boleta, 'sqlresultado') && esta funcion la acabo de inventar así, equivale a un seek, pero el archivo de sqlresultado no está indexado.
select sqlresultado
replace sqlresultado.p&contadorproductos with valores.producto
&& esta instrucción debiera funcionar con la macro, en otro caso sería hacer un largo case.

&& si decides hacerlo con una hilera aquí habría que sumar el código del producto a la hilera en el archivo.

endIf
endscan

Pes s%
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