hola compañeros, ¿como hago un IF o un case en una sentencia SQL de una tabla paradox?
saludos....
[RESUELTO] Case o IF paradox
Started by
look
, Dec 17 2010 11:59 AM
5 replies to this topic
#1
Posted 17 December 2010 - 11:59 AM
#2
Posted 17 December 2010 - 12:08 PM
Hola,
Paradox sólo se puede acceder mediante el Borland Database Engine (BDE), que yo sepa, y el BDE utiliza para tablas planas lo que se llama SQL local, que tiene sus limitaciones, desde luego no hay IF ni CASE (Paradox no dispone de procedimientos almacenados).
Si quieres especificar una condición, ponla en la cláusula WHERE, y si lo que buscas es poder juntar registros que cumplan diferentes condiciones y que no puedas conseguir mediante un WHERE, trata de usar una union de consultas, juntando cada una con la siguiente mediante la cláusula UNION.
Habría que ver qué es exactamente lo que quieres obtener.
Saludos
Paradox sólo se puede acceder mediante el Borland Database Engine (BDE), que yo sepa, y el BDE utiliza para tablas planas lo que se llama SQL local, que tiene sus limitaciones, desde luego no hay IF ni CASE (Paradox no dispone de procedimientos almacenados).
Si quieres especificar una condición, ponla en la cláusula WHERE, y si lo que buscas es poder juntar registros que cumplan diferentes condiciones y que no puedas conseguir mediante un WHERE, trata de usar una union de consultas, juntando cada una con la siguiente mediante la cláusula UNION.
Habría que ver qué es exactamente lo que quieres obtener.
Saludos
#3
Posted 17 December 2010 - 12:16 PM
sql
SELECT NUM_REG,CLV_ART, TIPO_MOV,ALMACEN, CASE WHEN TIPO_MOV<51 THEN CANT WHEN TIPO_MOV>50 THEN CANT*-1 END AS CANTES FROM MINV01
esta es mas o menos una sentencia que utilizo para el sql server, pero evidentemente no funciona con tablas paradox, quiero pasar esto a paradox.
saludos!
#4
Posted 17 December 2010 - 12:21 PM
Aunque no lo he probado debería poderse hacer con un UNION, a ver si te sirve:
Naturalmente, el resultado no es el mismo respecto al orden en que te aparecerá, ya que los que cumplan la segunda condición (TIPO_MOV > 50) aparecerán al final. Tampoco se puede esperar de Paradox lo mismo que de SQL Server
sql
SELECT NUM_REG, CLV_ART, TIPO_MOV, ALMACEN, CANT FROM MINV01 WHERE TIPO_MOV < 51 UNION SELECT NUM_REG, CLV_ART, TIPO_MOV, ALMACEN, CANT * -1 FROM MINV01 WHERE TIPO_MOV > 50
Naturalmente, el resultado no es el mismo respecto al orden en que te aparecerá, ya que los que cumplan la segunda condición (TIPO_MOV > 50) aparecerán al final. Tampoco se puede esperar de Paradox lo mismo que de SQL Server
#5
Posted 17 December 2010 - 12:29 PM
Pues acabo de probarlo desde el Database Desktop y me los ha mezclado por orden alfabético, los de la primera con los de la segunda consulta, no me lo esperaba ...Naturalmente, el resultado no es el mismo respecto al orden en que te aparecerá, ya que los que cumplan la segunda condición (TIPO_MOV > 50) aparecerán al final. Tampoco se puede esperar de Paradox lo mismo que de SQL Server
#6
Posted 17 December 2010 - 01:41 PM
hola , gracias por tu ayuda, ya lo solucione, queria migrar los formularios de sql server a paradox por un caso especial que se me dio, pero no ha sido necesario hacer eso, como sea.... gracias por la ayuda::.
saludos!
saludos!