** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Base datos, y consulta con campos calculados
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Base datos, y consulta con campos calculados

 Responder Responder
Autor
Mensaje
eBonShark Ver desplegable
Nuevo
Nuevo


Unido: 28/Diciembre/2022
Localización: Madrid
Estado: Sin conexión
Puntos: 24
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita eBonShark Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Base datos, y consulta con campos calculados
    Enviado: 11/Enero/2023 a las 14:50

Buenos días Gente 

 

Espero que estéis teniendo una muy buena entrada del 2023, aquí os traigo la primera complicación de enero, proyectillo que tengo en mi trabajo y quiero dejar automatizado.  

 

Dispongo de Tres Tablas, con los siguientes parámetros y complejidades que quiero unificar a través de una consulta para generar un informe, mensual/trimestral, etc etc 

  • Primera, Tabla Clientes, con los campos siguientes: 

[ClientCode] [Nombre] [Estado] [Margen] 

Detalles de la tabla:  

[ClientCode] Clave Principal (Numero,Indexado, Sin duplicados) Este es el Identificador.  

[Nombre] Nombre cliente (Texto Corto). 

[Estado] Tipo de cliente, define el tratamiento del precio (Texto Corto) 

[Margen] El precio según el tipo de cliente, define si lleva descuento o no. (Aquí quiero incluir un valor calculado que aplique, según el tipo un 5% o un 0,0% sobre el valor que se le de en un proyecto.



Editado por eBonShark - 11/Enero/2023 a las 14:51
Arriba
eBonShark Ver desplegable
Nuevo
Nuevo


Unido: 28/Diciembre/2022
Localización: Madrid
Estado: Sin conexión
Puntos: 24
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita eBonShark Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 11/Enero/2023 a las 14:52

  • Segunda, Tabla Financiaciones, con los campos siguientes: 

[Resourcegroup] [IdName] [Payer] [PermanenciaPago] [IdFnanciacion] [ImporteSinMargen] [F_Entrega] [F_Fin] [Año] [ServiceGroup] [BillingRate] 

Detalles de la tabla: 

[Resourcegroup] Nombre del proyecto (Texto Corto) 

[IdName] identificador de solicitud (Texto Corto, Indexado, Con duplicados) 

[Payer] Nombre cliente (Texto Corto) 

[PermanenciaPago] Tipo de permanencia, depende de si hay que repartir el importe en años o no. (Texto corto) Desplegable a seleccionar.  

[IdFnanciacion] identificador de financiación (Texto Corto, Indexado, Con duplicados) es similar al IdName, pero con la variante de si este se reparte en años, suele ser el mismo con terminacion_001 

[ImporteSinMargen] Importe del proyecto (texto corto) 

[F_Entrega] Fecha inicial de proyecto (fecha/hora) 

[F_Fin] Fecha final de proyecto (fecha/hora) 

[Año] Año de proyecto 

[ServiceGroup] tipo de servicio 

[BillingRate] El peso que tenga el importe total en el año, (eje. Un proyecto de 400k, con permanencia 4 años, el BR, seria ¼) 



Editado por eBonShark - 11/Enero/2023 a las 15:18
Arriba
eBonShark Ver desplegable
Nuevo
Nuevo


Unido: 28/Diciembre/2022
Localización: Madrid
Estado: Sin conexión
Puntos: 24
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita eBonShark Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 11/Enero/2023 a las 15:28
  • Tercera, Tabla Lista, con los campos siguientes: Esta tabla va enlazada a la segunda para nutrir a la primera de desplegables, contiene

[Id] [PermanenciaPago][ServiceGroup] [BillingRate] [MonthCharger]

Detalles de la tabla: 

[Id] identificador de solicitud (Autonumerico, Indexado, Sin duplicados) 

[PermanenciaPago] Contiene los tipo de permanencia, (Texto corto) Desplegable a seleccionar.  

[ServiceGroup] Contiene el tipo de servicio. 

[BillingRate] Contiene el tipo de BR

[MonthCharer] Contiene el nombre del mes en el que se realiza la carga. 

Arriba
eBonShark Ver desplegable
Nuevo
Nuevo


Unido: 28/Diciembre/2022
Localización: Madrid
Estado: Sin conexión
Puntos: 24
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita eBonShark Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 11/Enero/2023 a las 15:31

Lo que quiero, es mediante una consulta, sacar  los siguientes campos y estos se calculen, de forma automática según el tipo de cliente:  


  • Consulta Combinada con campos calculados

[Resourcegroup] [IdName] [Payer] [PermanenciaPago] [ImporteSinMargen] [Margen] [ImporteConMargen] [F_Entrega] [F_Fin] [Año] [ServiceGroup] [BillingRate] [LastCharge] [MonthCharge]


Detalles de los campos:

[Resourcegroup] Extraído de tabla 2

[IdName] Extraído de Tabla 2.

[Payer] Extraído de Tabla 1, condicionado según el tipo de cliente.

[PermanenciaPago] Extraído de Tabla 2.

[ImporteSinMargen] Extraído de Tabla 2.

[Margen] Extraído de tabla 1, según el tipo de cliente.

[ImporteConMargen] Calculado, según el [margen]+[ImportenSinMargen].

[F_Entrega] Extraído Tabla 2.

[F_Fin] Extraído Tabla 2 (se puede calcular?)

[Año] Extraído Tabla 2

[ServiceGroup] Extraído Tabla 2

[BillingRate] Extraído Tabla2

[LastCharge] Extraído Tabla2

[MonthCharge] Extraído Tabla2


Me echáis una mano con las formulas en los campos calculados, y la estructura de la consulta?



Editado por eBonShark - 11/Enero/2023 a las 15:43
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 11/Enero/2023 a las 16:09
¿Y qué has hecho? ¿Dónde te has atrancado?


¿No estarás necesitando un profesional que te resuelva esto?, hay una sección para ello.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
eBonShark Ver desplegable
Nuevo
Nuevo


Unido: 28/Diciembre/2022
Localización: Madrid
Estado: Sin conexión
Puntos: 24
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita eBonShark Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 12/Enero/2023 a las 21:12
Hola

Perdón, ayer escribí el post, pero no escribi los avances, tengo la consulta ya casi terminada


SELECT [Demandas NoPxQ Billing].RESOURCEGROUP, [Demandas NoPxQ Billing].IDNAME, [Demandas NoPxQ Billing].ClientCode, [Demandas NoPxQ Billing].PAYER, [Demandas NoPxQ Billing].COMMITMENT, [Demandas NoPxQ Billing].ImporteNomargen, [ImporteNoMargen]*[Tipo Margen] AS [Margen €], [ImporteNomargen]+[Margen €] AS ImporteConMargen, [Demandas NoPxQ Billing].[FECHA ENTREGA], [FECHA ENTREGA]+365 AS [Fecha Final], [Demandas NoPxQ Billing].SERVICEGROUP, [Demandas NoPxQ Billing].[BILLING RATE], [Demandas NoPxQ Billing].LastCharge, [Demandas NoPxQ Billing].MES, [Demandas NoPxQ Billing].AÑO


FROM Clientes_2022 INNER JOIN [Demandas NoPxQ Billing] ON Clientes_2022.ClientCode = [Demandas NoPxQ Billing].ClientCode

WHERE ((([Demandas NoPxQ Billing].Ejercicio)=2022) AND (Not ([Demandas NoPxQ Billing].Estado)="Pendiente"));


Pero quiero automatizar un par de campos mas, pero no se como:

[F Final] Actualmente tengo un codigo para que calcule la fecha + 365 dias, pero quisiera poner una formula para que calcule la fecha segun el campobilling, Silnm([BILLING RATE]=1; [FECHA ENTREGA]=Fecha Actual; 0)

[DateCharge] Quisiera poner una formula para que rellena una columa si [LastCharge] es si:

Silnm([LastCharge]=-1; [DataCharge]=MesAño en el que se marco; 0)


Sabeis que deberia poner en estos dos automaitsmos?


Por lo demas, estoy terminando.





Editado por eBonShark - 12/Enero/2023 a las 21:15
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 12/Enero/2023 a las 21:49
En una consulta la fecha se pone como:     = Date()
y la hora:                                                = Time ()

Para crear una columna tienes que usar la claúsula AS:
        SIInm(LastCharge= -1, Month(DatoFecha), 0) AS DataCharge

aunque veo que el AS ya lo utilizas, así que me temo que este último no te he entendido.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
eBonShark Ver desplegable
Nuevo
Nuevo


Unido: 28/Diciembre/2022
Localización: Madrid
Estado: Sin conexión
Puntos: 24
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita eBonShark Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 13/Enero/2023 a las 09:06
Publicado originalmente por Mihura Mihura escribió:

En una consulta la fecha se pone como:     = Date()
y la hora:                                                = Time ()

Para crear una columna tienes que usar la claúsula AS:
        SIInm(LastCharge= -1, Month(DatoFecha), 0) AS DataCharge

aunque veo que el AS ya lo utilizas, así que me temo que este último no te he entendido.

Pues creo que con las prisas no me he explicado bien, veras: 

Tengo en la Tabla 2 Demandas NoPxQ Billing, una columna que se llama
[LastCharge] esta se complementa manualmente con respuestas SI/NO. este campo lo marcamos manualmente cuando vayamos a analizar/hacer carga de datos etc etc, este campo alimentara al siguiente: 
[DataCharge] es aqui, donde quiero poner un automatismo, que lo cumplimente, dependiendo de la respuesta SI del campo LastCharge, es decir, que cuando marquemos SI, en [LastCharge] se cumplimente el Mes/año en [DataCharge] primeramente pense en usar la funcion:
Silnm([LastCharge]=-1; [DataCharge]=Data(); 0)

No se, si ahora me explique mejor. :S
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1510
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita pitxiku Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 13/Enero/2023 a las 19:53
Si entiendo lo que necesitas, no hay que poner el igual en medio, sino un AS al final, como te dice Mihura:

Silnm([BILLING RATE]=1; Date(); 0) AS [FECHA ENTREGA]

Y para formatear fechas y horas, usa la función Formato.
Arriba
eBonShark Ver desplegable
Nuevo
Nuevo


Unido: 28/Diciembre/2022
Localización: Madrid
Estado: Sin conexión
Puntos: 24
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita eBonShark Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Enero/2023 a las 10:31
Publicado originalmente por pitxiku pitxiku escribió:

Si entiendo lo que necesitas, no hay que poner el igual en medio, sino un AS al final, como te dice Mihura:

Silnm([BILLING RATE]=1; Date(); 0) AS [FECHA ENTREGA]

Y para formatear fechas y horas, usa la función Formato.

Michas gracias por la Info, finalmente que hice? 

Finalice la consulta sin ese automatismo y posteriormente le puse un formulario para la introduccion de datos, en el formulario le añadi una macro, que se ejecutaba al recibir el foco del campo DateCharge, el cual detectaba si el campo LastCharge, estaba marcado como SI, este generaba la fecha del dia marcado. 

Ahora solo me faltan los automatismos en las columnas desplegables. 

Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable