Ayuda! contar dias entre fechas

Hola buen día, como les va?

Les platico antes que nada como esta mi situación en la empresa que laboro se realizo un cambio de versión de SAP B1, y como tal pues me tuve que involucrar en ciertos aspectos del proceso en el cual medio he aprendido a la fuerza realizar consultas en SQL, por medio del generador de consultas de SAP, para nada sabia de este tema, y he tenido que aprender a marchas forzadas lo poquito que se es por que lo he leído o visto tutoriales, y ahorita la verdad ya me atore en un tema esperando me puedan ayudar.

Tengo 3 columnas con fechas.

T0.[U_VencimientoReal] ‘Fecha Vencimiento Real’
T0.[U_FechaPago] ‘Fecha Revisión’,
T0.[TaxDate] ‘Fecha Factura’,

A lo que quiero llegar es contar los días transcurridos o faltantes, es decir
U_VencimientoReal al día en curso cuantos días me faltan o cuantos días ya pasaron y si esta columna esta vacía tomar la columna U_FechaPago + ‘CondicionesCredito’ y de igual manera saber cuantos días me faltan o cuantos días ya pasaron, y si también se encuentra vacía tomar T0.[TaxDate] + ‘CondicionesCredito’ y de igual manera saber cuantos días me faltan o cuantos días ya pasaron.

No se si me di a entender. :sweat_smile: :worried:

A continuación mi consulta que tengo hasta el momento, igual es algo muy asico para muchos pero la verdad no se como brincar entre columas.

Si alguien me puede ayudar a corregir, se los agradeceré demasiado. :tired_face:

Saludos.

	SELECT
	T1.U_G_Credito 'Analista Credito',
	T0.[BPLName] 'Sucursal',
	T1.[CardFName]'Grupo',
	T0.[NumAtCard] 'Pedido/OC',
	T0.[DocNum] 'Factura',
	T0.[U_NumFacAnterior] 'FactAnt',
	T0.[TaxDate] 'Fecha Factura',
	T0.[U_FechaPago] 'Fecha Revisión',
	T0.[U_VencimientoReal] 'Fecha Vencimiento Real',
	CASE WHEN 
	DATEDIFF(DAY,T0.[U_VencimientoReal],GETDATE())=NULL
	THEN DATEDIFF(DAY,T0.[U_FechaPago],GETDATE())=NULL
	ELSE DATEDIFF(DAY,T0.[TaxDate] , GETDATE()) end Dias,
	T1.[U_XAMPCFAR] 'FNR',
	T0.U_FolioNR 'Folio NR',
	T0.U_FechaRecepcion 'F_Recep_NR',
	CASE
	T2.[PymntGroup]
	WHEN 'Contado C.O.D' THEN '0'
	WHEN 'Credito 10' THEN '10'
	WHEN 'Credito 120' THEN '120'
	WHEN 'Credito 15' THEN '15'
	WHEN 'Credito 20' THEN '20'
	WHEN 'Credito 21' THEN '21'
	WHEN 'Credito 22' THEN '22'
	WHEN 'Credito 25' THEN '25'
	WHEN 'Credito 30' THEN '30'
	WHEN 'Credito 34' THEN '34'
	WHEN 'Credito 36' THEN '36'
	WHEN 'Credito 38' THEN '38'
	WHEN 'Credito 45' THEN '45'
	WHEN 'Credito 5' THEN '5'
	WHEN 'Credito 60' THEN '60'
	WHEN 'Credito 64' THEN '64'
	WHEN 'Credito 8' THEN '8'
	WHEN 'Credito 80' THEN '80'
	WHEN 'Credito 90' THEN '90'
	ELSE 'Verificar' END CondicionesCredito,
	T0.[CardCode] 'Codigo SN',
	T0.[CardName] 'Razon Social',
	(T0.[DocTotal] - T0.[PaidToDate]) 'Saldo Pendiente',
	T0.[PaidToDate] 'Importe Aplicado',
	T0.[DocTotal] 'Imp_Original',
	CAST(T0.U_Eje AS NVARCHAR(100))as 'Credito',
	T4.ReportID 'UUID',
	CASE
	T4.[CancStatus]
	WHEN 'A' THEN 'Autorizado'
	WHEN 'C' THEN 'Cancelados'
	WHEN 'E' THEN 'Error'
	WHEN 'T' THEN 'Vigente'
	WHEN 'U' THEN 'EnviadaaAutoridades'
	WHEN ' ' THEN 'Vigente'
	ELSE 'FacturaDeCancelacion' END StatusSAT,
	T0.U_StatusProceso 'Status',
	T0.U_LoginProceso 'LoginProceso',
	T0.U_FechaProceso 'FechaProceso',
	T0.[U_NomUsuaCliente] 'Usuario',
	T0.[U_UsuarioCliente] 'Codigo usuario',
	T0.[U_CenCostClie] 'CC',
	T0.[U_DescripcionCC] 'Descripcion CC',
	T0.Comments 'Observaciones',
	CAST (T0.[U_Correo] AS NVARCHAR(100)) 'Email'
	FROM OINV T0
	INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode
	INNER JOIN OCTG T2 ON T1.GroupNum = T2.GroupNum
	INNER JOIN INV1 T3 ON T0.docentry = T3.docentry
	LEFT JOIN ECM2 T4 ON T0.ObjType = T4.SrcObjType  AND T0.DocEntry = T4.SrcObjAbs
	WHERE T0.[DocStatus] = 'O'
	group by 
	T0.[DocNum]
	,T4.ReportID
	,T4.[CancStatus]
	,T0.[U_NumFacAnterior]
	,T0.[U_FechaPago]
	,T0.[U_FolioNR]
	,T0.[U_FechaRecepcion]
	,cast (T0.U_Eje AS NVARCHAR(100))
	,T0.[TaxDate]
	,T0.[CardCode]
	,T1.[U_XAMPCFAR]
	,T0.[CardName]
	,T0.[DocTotal]
	,T0.[PaidToDate]
	,T0.[U_NomUsuaCliente]
	,T0.[U_Remision]
	,T0.[U_UsuarioCliente]
	,T0.[U_CenCostClie]
	,T1.[CardFName]
	,T0.[BPLName]
	,cast (T0.[U_Correo] AS NVARCHAR(100)),
	T2.[PymntGroup]
	,T0.[U_VencimientoReal]
	,T0.[NumAtCard]
	,T0.U_StatusProceso
	,T0.U_LoginProceso
	,T0.U_FechaProceso
	,T0.Comments
	,T1.U_G_Credito
	,T0.[U_DescripcionCC]
	,T4.ReportID
	order by T0.[TaxDate],T0.[DocNum]

Buenas Pablo, esto lo cambiaria

por

CASE WHEN 	DATEDIFF(DAY,T0.[U_VencimientoReal],GETDATE()) != NULL
THEN DATEDIFF(DAY,T0.[U_VencimientoReal],GETDATE()) 
ELSE 
(CASE WHEN DATEDIFF(DAY,T0.[U_FechaPago],GETDATE())!=NULL  
THEN DATEDIFF(DAY,T0.[U_FechaPago],GETDATE()) 
ELSE DATEDIFF(DAY,T0.[TaxDate] , GETDATE()) END
) end Dias,
1 me gusta

Muchas gracias, !!! Aprovechando disculpa mi ignorancia el símbolo de exclamación, en qué casos aplica o bien cuál es su función.

Saludos.

Buenas
Para evaluar si tu expresion no es igual (distinta), dependiendo de la herramienta y el lenguaje se puede usar != ó <>

1 me gusta

Este tema se cerró automáticamente 7 días después de la última publicación. No se permiten nuevas respuestas.