Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Crear un query que me traiga los valores de una variable (https://www.clubdelphi.com/foros/showthread.php?t=74880)

escorpionrojo43 14-07-2011 22:25:52

Crear un query que me traiga los valores de una variable
 
query con valores almacenados

Saludos Colegas del club

Necesito que me den una mano con este problema

Código SQL [-]
SELECT IIF([jugada]= :edit1.text,[valor]*100,IIF([jugada]= :edit2.text,[valor]*10,IIF([jugada]= :edit3.text,[valor]*1," "))) as campo11, *

FROM TICKET_DETALLE where (fecha = :DateTimePicker1.date) and (jugada = :edit1.text or  jugada = :edit2.text or jugada = :edit3.text)
order by len(jugada),jugada;

Los resultados que obtengo son algo como esto

campo11 TICKETID loc_codigo cia_codigo jugada fecha
5000 8 1 1 10 10/07/2011
500 8 1 1 20 10/07/2011
50 8 1 1 30 10/07/2011


el punto que necesito es que quiero que me muestre esto

Código:

campo11        TICKETID        loc_codigo        cia_codigo        jugada        fecha
5000          8              1                1                10                10/07/2011
500                8                1                1                20              10/07/2011
50                8                1                1                30                10/07/2011
10000        8              1              1              1020          10/07/2011
10000        8              1              1              1030          10/07/2011
1000          8              1              1              2030        10/07/2011
1000000    8              1              1              102030      10/07/2011

el asunto es que los numeros dados en los edit son (edit1=10) (edit2=20) (edit3=30)

oscarac 14-07-2011 22:33:55

hola
primero que nada una leida a la guia de estilos.. porque el titulo query como que no nos dice mucho del problema que tienes

no sabemos que informacion tiene la tabla, supuestamete el valos debe multiplicarse de acuerdo al parametro

explica un poco mas que es lo que tiene la tabla que esperas obtener y usa los tags para poder entender mejor el mensaje

saludos

escorpionrojo43 14-07-2011 22:58:35

Ok perdena los errores de estilo de explicacion del problema.

tengo una tabla llamada ticket_detalle la cual esta compuesta de los sigueintes campos:

TICKETID :string
loc_codigo :string
cia_codigo :string
jugada :string
fecha :datetime

la informacion que tengo algo parecido a esto
**jugada**
30
10
20
1020
1030
2030
102030
88
15
99
8815
8899

en el query mando a buscar los valores de las variables edit1, edit2 y edit3
dichos valores son: 10, 20, 30 nota:(son del tipo String)
deseo que me traiga estos valores


10
20
30
1020
1030
2030
102030

y que si los valores de las variables edit fueran 10,20,60
los resultados sean

10
20
1020

el campo11 es un campo virtual en el que dice algo
ejemplo:
10 --- "1ro"
20 --- "2do"
30 --- "3ro"
1020 -- "combinacion 1ro y 2do"
2030 -- "Combinacion 2do y 3ro"

espero que este mas claro ahora
gracias.

Casimiro Noteví 15-07-2011 00:06:14

Recuerda seguir nuestras normas, una de ellas es poner títulos descriptivos a los mensajes, "Query" no es ningún título descriptivo.

También recuerda que cuandos pongas código debes encerrarlo entre las etiquetas correspondientes. Gracias por tu colaboración.





.

escorpionrojo43 15-07-2011 00:11:48

Perdon por el error
 
Cita:

Empezado por Casimiro Notevi (Mensaje 406441)
Recuerda seguir nuestras normas, una de ellas es poner títulos descriptivos a los mensajes, "Query" no es ningún título descriptivo.

También recuerda que cuandos pongas código debes encerrarlo entre las etiquetas correspondientes. Gracias por tu colaboración.





.

Hermano ya pedi disculpas por ese error queria cambiar el titulo pero ya no lo puedo hacer.

Aun espero que alguien me ayude a solucionar el problema en el query mencionado.

Y les pido disculpas otra vez por el error.

Casimiro Noteví 15-07-2011 00:14:24

Disculpa, pero no he entendido exactamente qué quiéres obtener.

Caral 15-07-2011 00:23:14

Hola
Para me el asunto, segun lo que entiendo esta asi:
Tiene un valor de jugada que es de 50 (segun el ejemplo).
Lo que intenta es con una sentencia IIF determinar los valores finales dependiendo de los edits.
Lo que pasa es que coloca una sentencia IIF enlazada a otras dos.

IIF(jugada = X1, Valor * Y, IFF(jugada = X2, Valor * Z, IFF (Jugada = X3, Valor * S, Nada ) as total.

El problema para mi es que al enlazar los IFF los valores que consigue no se suman en los edits y por eso no coinciden.
Bueno, es lo que entiendo de esto.
Saludos

Caral 15-07-2011 00:28:05

Hola
El problema que siento es que la sentiencia IFF da los valores corectos.

IFF(valor = lo que sea, primera opción, segunda opción).

IFF(valor = '1', 1, 0) as total.

Por consiguiente en su caso no solo tiene la primera si no todas las otras juntas.

Saludos

escorpionrojo43 15-07-2011 00:30:17

Cita:

Empezado por Casimiro Notevi (Mensaje 406445)
Disculpa, pero no he entendido exactamente qué quiéres obtener.

Mi problema que ya tengo un query que me trae los resultados pero necesito que las variables se concatenen

ejemplo mi variable edit1, edit2 y edit3 tienen valores de 10,20 y 30
en la consulta me traes esos tres valores pero tengo otros valores como
1020 y 1030
que quiero vengan en la consulta pero que estos vengan como resultado de las mismas 3 variables

si en mi varariable hay un valor de 10 y 30 me traiga tambien el valor 1030

escorpionrojo43 15-07-2011 01:50:08

Ayuda Para crear un query que me traiga los valores de una variable
 
Hola
Por los errores que cometi en el otro post me vi en la necesidad de hacer este otro.
Necesito que me ayuden con este query

Código SQL [-]
SELECT =IIf([jugada]= :var1,"Primera",
IIF([jugada]=:var2,"Segunda",
IIF([jugada]=:var3,"Tercera"," "))) AS campo11, 
* From ticket_detalle

Las variables que contienen los datos son var1, var2, y var3
los datos en la consulta actual son 10, 20 y 30.
Los que estan encerrado son las posibles concatenaciones de las 3 variable
que son los que me faltan por traer

los que estan con la linea roja son los datos que ya pude obtener



queria hacerlo con la opcion case pero me fue imposible ejecutar un select case

espero me puedan ayudar.
Gracias

escorpionrojo43 15-07-2011 01:56:31

Amigos Perdonenme una vez mas.
me vi en la necesidad de hacer otro hilo en el cual defino mejor y con una imagen de que es lo que quiero.

este es el hilo http://www.clubdelphi.com/foros/showthread.php?t=74880

como siempre cuento con su apoyo. gracias

Caral 15-07-2011 02:11:04

Hola
Me imagino que es una concatenacion de los edits:
Código SQL [-]
SELECT =
IIf([jugada]= :var1 + :var2,"PrimeraYSegunda",
IIF([jugada]= :var2 + :var3,"SegundaYTercera",
IIF([jugada]= :var1 + :var3,"PrimeraYTercera",
IIF([jugada]= :var1 + :var2 + :var3,"PrimeraYSegundaYTercera"," "))) AS Campo11, 
* From ticket_detalle
Saludos

Casimiro Noteví 15-07-2011 02:11:52

He unido ambos hilos, se ve que nuestro amigo todavía no ha leído la guía de estilo. No sé la necesidad que había de abrir otro hilo, en lugar de continuar con este ;)

escorpionrojo43 15-07-2011 02:34:37

Cita:

Empezado por Caral (Mensaje 406458)
Hola
Me imagino que es una concatenacion de los edits:
Código SQL [-]
SELECT =
IIf([jugada]= :var1 + :var2,"PrimeraYSegunda",
IIF([jugada]= :var2 + :var3,"SegundaYTercera",
IIF([jugada]= :var1 + :var3,"PrimeraYTercera",
IIF([jugada]= :var1 + :var2 + :var3,"PrimeraYSegundaYTercera"," "))) AS Campo11, 
* From ticket_detalle
Saludos

Gracias por la ayuda. esto me funciona bien caral.

Ahora me surge otra necesidad

dadas las variables
10,20,30

tengo en la tabla jugada estos datos
402030 -- en este caso lo dos ultimos cumplen pero el primero no.
2010 ---- en este caso cumple la condicion solo que no tiene el mismo orden

que puedo hacer para que estos me salgan en la consulta

Caral 15-07-2011 02:55:49

Hola
Creo que si tienes varias variables o si tienes varios datos me parece que seria mejor crear inicialmente las variables que puedas tener y posteriormente hacer la consulta sobre esas variables.
Tambien se podria usar <> (diferente a) pero me da la impresion de que puedes tener tantas diferencias que solo tu sabes cuales seran.
Saludos


La franja horaria es GMT +2. Ahora son las 14:09:29.

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