FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Consulta con el HAVING por parámetro
Hola amigos del foro, de antemano gracias a todos aquellos que se interesen por este hilo y a los que me ayuden en la solución. Tengo una consulta que la ejecuto dentro de un procedimiento almacenado, estoy usando SQL 2000, pero quisiera pasar la condición del HAVING como parámetro al procedimiento.
Lo tengo así:
pero quisiera poder hacer esto:
pero al ejecutarlo me da error. Agradezco toda la ayuda que me puedan dar para resolver el problema. Gracias a todos. |
#2
|
||||
|
||||
y que error es el que te sale?
__________________
Dulce Regalo que Satanas manda para mi..... |
#3
|
|||
|
|||
Error 170: Linea 17: sintaxis incorrecta cerca de ')'
|
#4
|
||||
|
||||
y como estas mandando el parametro?
__________________
Dulce Regalo que Satanas manda para mi..... |
#5
|
|||
|
|||
Oscarac gracias por interesarte por mi problema, el error me lo dá cuando estoy creando el procedimiento almacenado, o sea, que aún no he ejecutado el procedimiento por primera vez.
|
#6
|
||||
|
||||
Saludos, rubio.
No he probado tu consulta SQl, pero a simple vista creo que el error esta en: 1.- Asi me dices que te funciona? Cita:
Cita:
Cita:
Sin mas...... Prueba y comenta |
#7
|
||||
|
||||
no debeiria ser asi?
having (@shaving)
__________________
Dulce Regalo que Satanas manda para mi..... |
#8
|
|||
|
|||
Hola orioncomputer, gracias por interesarte, quizas no me he explicado bien, el problema es el siguiente:
SHaving puede venir de diferentes formas: 1.- (dbo.OT.OT = 252011) 2.- (dbo.OT.OT = 252011) OR (dbo.OT.OT = 255011) OR (dbo.OT.OT = 266057) .... o sea, yo conformo la condición del HAVING en dependencia de la cantidad de OT que fueron seleccionadas por el usuario. Entiendes por qué debo hacerlo así, si tienes una solución para el problema por favor decirmelo. Gracias... |
#9
|
|||
|
|||
Oscarac, lo probé y me el mismo error.
Gracias. |
#10
|
||||
|
||||
da un ejemplo de como lo estas mandando en este momento... que valor le estas dando al parametro
__________________
Dulce Regalo que Satanas manda para mi..... |
#11
|
|||
|
|||
Oscarac, te decia que el error me lo da construyendo el procedimiento almacenado en el Enterprise Manager de SQL, cuando le doy comprobar la sintaxis, me sale el error. en la respuesta que le ofrecí a orioncomputer le decía que el parámetro puede tomar diferentes valores ya que es construido de acuerdo a la cantidad de OT que seleccione el usuario, puede ser así:
1.- (dbo.OT.OT = 252011) 2.- (dbo.OT.OT = 252011) OR (dbo.OT.OT = 255011) OR (dbo.OT.OT = 266057) .... no se si me entiendes. Primero creo el parámetro: Código Delphi [-] for I:=0 to (clbOT.Items.Count -1) do begin bSi:=True; if clbOT.Checked[i]=True then begin sOT:=MidStr(clbOT.Items[i],1,(Pos(' ',clbOT.Items[i])-1)); if bPrimera=True then begin sHav:='(((OT.OT)=' + sOT; bPrimera:=False; bSegunda:=True; end else if bSegunda=True then sHav:=sHav + ' OR (OT.OT)=' + sOT; end; end; if bSi=True then sHav:=sHav + '))'; end; Para llamarlo sería así: Crear un ADOCommand.
Entiendes lo que quiero hacer. Gracias. Última edición por rubio fecha: 11-10-2011 a las 20:25:33. |
#12
|
||||
|
||||
y estas seguro que la cedana resultante esta bien?
chequea que valor tiene la cadena
__________________
Dulce Regalo que Satanas manda para mi..... |
#13
|
|||
|
|||
Oscarac, amigo no me entiendes, yo no llego a terminar el procemiento almacenado, ya que cuando lo voy a probar la sintaxis me da el error y no meja salvarlo de esta forma:
Que pasa, eso está programado para ser usado con base de datos en ACCESS y yo lo estoy pasando a SQL te pongo la sintaxis para que veas como está ahora,:
UsoSQL es una función:
Te repito donde me da el error es creando el procedimiento en el enterprise manager, yo me pregunto si no faltará algo para concatenar la palabra HAVING con el parámetro que se le pasa al procedimiento? Gracias. |
#14
|
||||
|
||||
yo creo que TU no entendiste lo que te pregunte...
quiero el valor de la cadena sHAV
__________________
Dulce Regalo que Satanas manda para mi..... |
#15
|
|||
|
|||
El valor de la cadena es el siguiente:
((dbo.OT.OT=292011) OR (dbo.OT.OT=302011) OR (dbo.OT.OT=322011)) |
#16
|
|||
|
|||
Hola si mal no entiendo es esto lo que estas buscando.
en la variable @SHaving mandas lo que quieres pero que coincida con la query. Saludos. |
#17
|
|||
|
|||
Hola abelg, gracias por interesarte por el tema, es muy interesante la respuesta que me das, pero al pasarlo al enterprise manager me da error en esta linea:
declare @Select varchar(max) el error que da es el siguiente: Error 170: Linea 5: sintaxis incorrecta cerca de 'max'. Debe declarar la variable '@Select' no logro enteder el error, ya que la variable está siendo declarada en ese momento. Saludos |
#18
|
||||
|
||||
no sera que el nombre de la variable es igual a una palabra reservada?
intenta definir la variable con otro nombre.. _Select por ejemplo
__________________
Dulce Regalo que Satanas manda para mi..... |
#19
|
|||
|
|||
Hola oscarac, ya me había saltado esa duda y la cambié, le puse @Select_12 y me dió el mismo error.
Saludos |
#20
|
||||
|
||||
en lugar de MAX coloca 255 (esperemos que la consulta no llegue a tantos caracteres)
__________________
Dulce Regalo que Satanas manda para mi..... |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error en consulta sql con parametro | Lizette | Varios | 7 | 14-04-2009 07:40:44 |
Consulta Like '%'+ :parametro + '%' | klionsis | Varios | 6 | 23-08-2008 01:29:37 |
problema con un parametro consulta sql | sensei | SQL | 2 | 27-02-2008 02:27:52 |
Consulta Like Mysql '%'+ :parametro + '%' | CarlaOnti | MySQL | 3 | 30-01-2006 12:46:13 |
Problema con Parametro en una consulta | Durbed | Firebird e Interbase | 4 | 23-06-2005 17:55:41 |
|