Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/04/2016, 14:25
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: Error en consulta :(

Lo que puede pasar es que con un rango solo te arroja un proveedor y con otro rango de arroja mas de un provedor, no puedes usar ese tipo de sentencias cuando te regresa mas de un resultado el subquery, lo mejor seria hacerlo de esta manera:

Código SQL:
Ver original
  1. SELECT Folio,t1.Proveedor, FechaFactura AS 'Fecha de Factura', Monto,  t2.Credito,Moneda, '30 Dias' = CASE WHEN datediff(DAY,FechaFactura,getdate())<= 30 THEN DATEDIFF(DAY, FechaFactura, getdate()) ELSE '0' END,'60 Dias' = CASE WHEN datediff(DAY,FechaFactura,getdate())>30 AND datediff(DAY,FechaFactura,getdate())<= 60 THEN DATEDIFF(DAY, FechaFactura, getdate()) ELSE '0' END,'90 Dias' = CASE WHEN datediff(DAY,FechaFactura,getdate())>60 THEN DATEDIFF(DAY, FechaFactura, getdate()) ELSE '0' END FROM CXP AS t1
  2. LEFT JOIN (SELECT credito, proveedor FROM proveedor) AS t2 ON (t1.nombre=t2.proveedor)
  3. WHERE (FechaFactura BETWEEN '2016-02-01' AND '2016-02-29') AND Pagada = 'No'
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me