PDA

Ver la Versión Completa : de una misma tabla


Citlalli
12-09-2006, 20:34:58
Hola foreros,

estoy liado con este query que aparantemente esta sencillo pero finalmente no he podido hacerlo.

tengo una tabla que se llama ventas, dentro de esta tengo el campo total y el campo mayoreo:
------------------------
Ventas

Total - Double Precision
Mayorero - Char
------------------------

lo que quiero es hacer un query que me diga las ventas de mayoreo y las de menudeo.


algo asi


Mayoreo Menudeo
$2,350 $10,659
$3,456 $12,567


cabe mencionar que para distinguir si es mayoreo o menudeo en el campo mayoreo guardo 'S' si es verdad y 'N' si no.

es algo asi:



SELECT Total
FROM Ventas
WHERE Mayoreo = 'S'








obviamente este query me da solo las ventas de mayoreo, y he aqui la pregunta, cómo hago para que me de las ventas de mayoreo y menudeo en un solo registro como en el ejemplo que les puse arriba?

espero haberme explicado bien, por cierto, utilizo interbase 6

muchas gracias

ContraVeneno
12-09-2006, 23:24:22
SELECT V.Total, V2.Total
FROM Ventas V, Ventas V
WHERE V.Mayoreo = 'S' and V2.Mayoreo = 'N'

Citlalli
13-09-2006, 00:11:27
Lo siento contraveneno, pero no me funcionó tu solución, porque simplemente no me trae nada, y si tengo ventas.

por cierto, ahora me estan pidiendo tambien la fecha, entonces la tabla queda asi:


Ventas
-----------------------
Fecha - Timestamp
Total - Double Precision
Mayoreo - Char


gracias de todas formas y sigo pidiendo ayuda

ContraVeneno
13-09-2006, 00:12:43
si, eso estaba viendo, me acelere un poco en esa respuesta y ya vi que no trae nada... vamos investigando :D

Citlalli
13-09-2006, 01:23:09
de todas formas muchas gracias contraveneno, por intentar ayudarme, yo creo por ahi va la respuesta, estamos muy cerca.

gracias, sigo pidiendo ayuda

mamcx
13-09-2006, 01:39:54
Eso no da con Sql porque estas invirtiendo columnas y filas, es un crosstab.

Toca hacerlo con cursores o reformular como se ve la informacion...

Citlalli
13-09-2006, 01:43:28
que que que que? no entendi mamcx

rastafarey
19-09-2006, 19:04:37
No es solo copiar y pegar verifiquen las sisntaxis que escribi een un cyber y no lo probe.

Create Procedure "Nombre"
Return(
"Mayoreo" Doble Presicion,
"Menudeo" Doble Presicion
)
As
Declare Variable "C" char;
Declare Variable "T" Doble Presicion
Begin
For Select "Total", "Mayoreo" From "Ventas" Into :"T", :"C" Do Begin
"Mayoreo" = Null;
"Menudeo" = Null;
If ("C" = 'M') Then
"Mayoreo" = "T";
Else
"Menudeo" = "T";
Suspend;
End
End

jachguate
19-09-2006, 19:21:58
Para algo así me parece exagerado un sp, cuando podría sacarse con:


select fecha,
case Mayoreo
when 'S' then Total
else null
end Vtas_Mayoreo,
case Mayoreo
when 'N' then Total
else null
end Vtas_Menudeo
from Ventas
where condiciones;


Tampoco va probado, pero la idea es esa...

Caral
19-09-2006, 20:29:07
Hola
Coloca un tcombobox en el from, en este pon:
S
N
En el evento onchange del tcombobox pon:

If tcombobox1.Text = 'S' then
TQuery1.sql.add(' SELECT Total FROM Ventas WHERE Mayoreo = '+tcombobox1+'' else
TQuery1.sql.add(' SELECT Total FROM Ventas WHERE Mayoreo = '+tcombobox1+'';
con esto se define que buscar S o N sin modificar el sql para cada dato, esta hecho rapido y sin probar Espero te de una idea general.
Saludos