Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   de una misma tabla (https://www.clubdelphi.com/foros/showthread.php?t=35502)

Citlalli 12-09-2006 20:34:58

de una misma tabla
 
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

Código PHP:

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:



Código SQL [-]
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

Código SQL [-]
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:

Código PHP:

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

Resp
 
No es solo copiar y pegar verifiquen las sisntaxis que escribi een un cyber y no lo probe.
Código SQL [-]
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:

Código SQL [-]
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:
Código Delphi [-]
 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


La franja horaria es GMT +2. Ahora son las 05:58:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi