Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

que me falla en la sintaxis??

Estas en el tema de que me falla en la sintaxis?? en el foro de SQL Server en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SELECT A . empresa , A . productor , A . ALTA , A . BAJA FROM (   ...
  #1 (permalink)  
Antiguo 19/05/2010, 02:27
 
Fecha de Ingreso: mayo-2010
Mensajes: 7
Antigüedad: 14 años, 6 meses
Puntos: 0
que me falla en la sintaxis??

Código SQL:
Ver original
  1. SELECT A.empresa,A.productor,A.ALTA,A.BAJA
  2. FROM (
  3.     SELECT empresa,productor,SELECT(MAX(fecha1)[ALTA]
  4.           FROM NINC WHERE empresa=001 AND clave=5 AND fecha1<=@fFecha),
  5.           SELECT(MAX(fecha1)[BAJA] FROM NINC WHERE empresa=001 AND clave=6 AND fecha1<=@fFecha)
  6.             FROM ninc
  7.           WHERE empresa=001 AND clave=5 AND fecha1<=@fFecha
  8.     GROUP BY empresa,productor
  9. ) A
  10. WHERE A.ALTA > ISNULL(A.BAJA,1)
  #2 (permalink)  
Antiguo 19/05/2010, 07:53
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: que me falla en la sintaxis??

Código SQL:
Ver original
  1. SELECT A.empresa,A.productor,A.ALTA,A.BAJA
  2. FROM (
  3.     SELECT empresa,productor,(SELECT MAX(fecha1)[ALTA]
  4.           FROM NINC WHERE empresa=001 AND clave=5 AND fecha1<=@fFecha),
  5.           (SELECT MAX(fecha1)[BAJA] FROM NINC WHERE empresa=001 AND clave=6 AND fecha1<=@fFecha)
  6.     FROM ninc
  7.     WHERE empresa=001 AND clave=5 AND fecha1<=@fFecha
  8.     GROUP BY empresa,productor
  9. ) A
  10. WHERE A.ALTA > ISNULL(A.BAJA,1)
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 20/05/2010, 01:46
 
Fecha de Ingreso: mayo-2010
Mensajes: 7
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: que me falla en la sintaxis??

Ostras no le veo la diferencia.



Cita:
Iniciado por carlosd21 Ver Mensaje
Código SQL:
Ver original
  1. SELECT A.empresa,A.productor,A.ALTA,A.BAJA
  2. FROM (
  3.     SELECT empresa,productor,SELECT(MAX(fecha1)[ALTA]
  4.           FROM NINC WHERE empresa=001 AND clave=5 AND fecha1<=@fFecha),
  5.           SELECT(MAX(fecha1)[BAJA] FROM NINC WHERE empresa=001 AND clave=6 AND fecha1<=@fFecha)
  6.             FROM ninc
  7.           WHERE empresa=001 AND clave=5 AND fecha1<=@fFecha
  8.     GROUP BY empresa,productor
  9. ) A
  10. WHERE A.ALTA > ISNULL(A.BAJA,1)

El tema es pq esta de arriba y esta de abajo no son ekivalentes. Kiero conseguir q la de arriba sea ekivalente a la de abajo


Código SQL:
Ver original
  1. SELECT A.empresa,A.productor,A.ALTA,B.BAJA
  2. FROM (
  3.     SELECT empresa,productor,MAX(fecha1)[ALTA]
  4.     FROM ninc
  5.     WHERE empresa=001 AND clave=5
  6.     GROUP BY empresa,productor
  7. ) A
  8. LEFT JOIN (
  9.     SELECT empresa,productor,MAX(fecha1)[BAJA]
  10.     FROM ninc
  11.     WHERE empresa=001 AND clave=6
  12.     GROUP BY empresa,productor
  13. ) B ON A.empresa = B.empresa AND A.productor=B.productor
  14. WHERE A.ALTA > ISNULL(B.BAJA,1)
  #4 (permalink)  
Antiguo 20/05/2010, 08:32
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: que me falla en la sintaxis??

Código SQL:
Ver original
  1. SELECT empresa,productor,
  2.         (SELECT MAX(fecha1)[ALTA] FROM NINC WHERE empresa=001 AND clave=5 AND fecha1<=@fFecha)t1,
  3.         (SELECT MAX(fecha1)[BAJA] FROM NINC WHERE empresa=001 AND clave=6 AND fecha1<=@fFecha)t2
  4.     FROM ninc
  5.     WHERE empresa=001 AND clave=5 AND fecha1<=@fFecha
  6.     GROUP BY empresa,productor
Esta subconsulta te devuelve lo que tu esperas?
Yo pienso que ese tipo de consultas, es decir, tener una consulta en la parte del select, es una muy mala practica, ademas que no guarda ninguna relacion entre registros con el select principal.
Creo que yo te di la segunda solucion, por que no la usas?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.

Etiquetas: falla, sintaxis
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:48.