Jump to content
Sign in to follow this  
nickmartinez

Error funcion iif en sentencia sql

Recommended Posts

Alguien me ayude por favor con este código: 
Sql = "SELECT P.CODIGO,P.ARTICULO,ID_P, IIF(CANT_ENTRADAS="",0,sum(CANT_ENTRADAS))AS ENTRADAS,IIF(CANT_SALIDAS="",0,sum(CANT_SALIDAS))" & _ 
"AS SALIDAS FROM [PRODUCTOS$] P INNER JOIN [MOV_ENTRADAS$] M ON P.ID=M.ID_P GROUP BY P.CODIGO,P.ARTICULO,ID_P" 
Rs.Open Sql, Cnn, 1, 1 
Con esto pretendo sumar las cantidades de la columna entrada igualmente de las salidas por productos pero en el caso que en alguna de las columnas hayan campos nulos se rellenen con ceros(0) para luego hacer operaciones matemáticas entre las 2 columnas anteriormente ya mencionadas, un saludo para todos y muchas gracias cabe resaltar que este código es ejecutado desde excel, use sentencias select case pero no me sirvió da error, use algo así : 
sql="select case when CANT_ENTRADAS="" then 0 "& _ 
" else sum(CANT_ENTRADAS) "& _ 
" end from [mov_entradas$]" pero da error,a mi parecer no se puede ejecutar esta sentencia desde excel

CONTROL PRODUCTOS.xlsm

Share this post


Link to post
Share on other sites

en VBA para representar un par de comillas dobles ( "" ) en una instrucción delimitada por comillas dobles, es necesario utilizar DOS pares de comillas dobles ( """" ), y según otras circunstancias, puede que se requiera de más de dos (?)

por si fuera de utilidad:

IIF es lo mismo que CASE WHEN <condición> THEN <parte si verdadero> ELSE <parte si falso> END
CASE es utilizable para todas las plataformas SQL pero IIF es especifico para SQL SERVER 2012+

fuente: Logical Functions - IIF (Transact-SQL)

saludos,
hector.

Share this post


Link to post
Share on other sites
Hace 2 horas, Héctor Miguel dijo:

GRACIAS PERO COMO YA COMENTE NO PUDE HACER FUNCIONAR EL CODIGO DE NINGUNA DE LAS 2 FORMAS ¿SERIAS TAN AMABLE DE REVISAR EL ARCHIVO ADJUNTO Y CORREGIR EL CODIGO DE MANERA QUE FUNCIONE? REALMENTE ESTOY NECESITANDO SABER COMO,GRACIAS MI AMIGO DE ANTEMANO

 

Edited by nickmartinez

Share this post


Link to post
Share on other sites

GRACIAS PERO COMO YA COMENTE NO PUDE HACER FUNCIONAR EL CODIGO DE NINGUNA DE LAS 2 FORMAS ¿SERIAS TAN AMABLE DE REVISAR EL ARCHIVO ADJUNTO Y CORREGIR EL CODIGO DE MANERA QUE FUNCIONE? REALMENTE ESTOY NECESITANDO SABER COMO,GRACIAS MI AMIGO DE ANTEMANO

Share this post


Link to post
Share on other sites

Tema resuelto para los que en el futuro tengan el mismo problema aqui la solucion,gracias a un amigo que me hizo la observacion,el codigo funciona elproblema estaba en estas lineas:

asi estaba:

IIF(CANT_ENTRADAS="",0,sum(CANT_ENTRADAS))AS ENTRADAS

y asi se corrigio:

Sum(IIF(CANT_ENTRADAS IS NULL, 0, CANT_ENTRADAS))AS ENTRADAS

asi quedo el codigo final y ¡AL FIN  FUNCIONA!

 

Sql = "SELECT M.ID_P,P.CODIGO,Sum(IIF(CANT_ENTRADAS IS NULL, 0, CANT_ENTRADAS))AS ENTRADAS," & _
" Sum(IIF(CANT_SALIDAS IS NULL, 0, CANT_SALIDAS))AS SALIDAS FROM [PRODUCTOS$]P INNER JOIN" & _
"[MOV_ENTRADAS$]M ON P.ID=M.ID_P group by M.ID_P,P.CODIGO"

 Rs.Open Sql, Cnn, 1, 1

Tema resuelto Gracias...

Edited by nickmartinez

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png