Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Proceso para subvencionar productos (Solo algunos) (https://www.clubdelphi.com/foros/showthread.php?t=76351)

oscarac 25-10-2011 05:16:23

Proceso para subvencionar productos (Solo algunos)
 
Buenas noches
tengo un problema que me tiene pensando hace rato

tengo 2 tablas (las clasicas cabecera y detalle)

Cita:

cabecera
Origen, Documento, Fecha, Trabajador
Cita:

Detalle
Origen, Documento, Codigo, Cantidad, Precio, Subvencion, Trabajador
aparte de eso tengo una tabla con productos, los cuales solo algunos son Subvencionados
el sistema controla los consumos en el restaurante de los trabajadores, de los cuales solo 1 plato puede ser subvencionado, los demas platos del dia, son asumidos al 100% por el trabajador, asimismo los productos que no son subvencionados son asumidos al 100% por los trabajadores

Ejemplo
Cita:

Cabecera
V01, 001-0000234, 01/10/2011, PE101010
V01, 001-0000235, 01/10/2011, PE101020
V01, 001-0000236, 01/10/2011, PE101030
V01, 001-0000237, 01/10/2011, PE101010
V01, 001-0000238, 01/10/2011, PE101010
Detalle
Cita:

V01, 001-0000234, 00001, 1, 10, 0, 0
V01, 001-0000235, 00001, 1, 10, 0, 0
V01, 001-0000236, 00001, 1, 10, 0, 0
V01, 001-0000237, 00001, 1, 10, 0, 0
V01, 001-0000238, 00004, 1, 20, 0, 0
entonces la informacion despues del proceso, terminaria asi
Detalle
Cita:

V01, 001-0000234, 00001, 1, 10, 10, 0
V01, 001-0000235, 00001, 1, 10, 0, 0
V01, 001-0000236, 00001, 1, 10, 0, 0
V01, 001-0000237, 00001, 1, 10, 0, 10
V01, 001-0000238, 00001, 1, 10, 0, 20
Noten que el ticket Numero 001-0000234, 001-000237, 001-0000238 corresponden a la misma persona, por dia, los trabajadores pueden tener varios consumos, ya sea de productos subvencionados o de productos que asumiran al 100%

se entendio ??? :eek::eek:

oscarac 25-10-2011 16:01:04

cometi un error en el detalle
para que se entienda mejor...el ticket numero 001-0000238 el codigo no es 00001 sino 00004

oscarac 26-10-2011 22:01:53

estaba pensando en una nueva estrategia para solucionar mi problema y es la de identificar al menos el primer ticket de consumo que contenga algun plato subvencionado, entonces, los demas tickets de consumo del dia los asumiria el trabajador y solo el ticket identificado, lo asume la empresa

tengo esta consulta que me gustaria mejorar, me saca los consumos dentro de un rango de fechas, pero no se como hacer para que si en 1 dia hay 2 consumos de productos subvencionados... solo me jale uno de ellos

Código SQL [-]
 
Select c.F_DOC, c.AUX, t.Empresa, t.descl, t.otro, c.tdc, c.doc, d.KOD, a.check
from (((tblconsumod d
Left join tblconsumoc c on c.tdc = d.tdc and c.doc = d.doc)
Left join tbltrabajador t on c.aux = t.kod)
Left join tblArticulo a on d.kod = a.kod)
where c.f_DOC between #01/06/2011# and #30/06/2011# and c.TipoConsumo = 'K' and a.check = 'x'
Group by c.F_DOC, c.AUX, t.Empresa, t.descl, t.otro, c.tdc, c.doc, d.KOD, a.check
order by c.aux, c.f_doc

El campo Check.. es un campo en la tabla de articulos, el cual identifica al producto subvencionado

oscarac 28-10-2011 23:20:16

como puedo saber el numero de registro (RECNO) de una tabla?
para poder capturarlo en un query

algo asi..

Código SQL [-]
 
Select T1.campos.., T2..campos.., t3.NUMERODEREGISTRO from.. T1.. t2,.. t3

001, XXXX, 2456
001, YYYY, 1500

oscarac 29-10-2011 05:28:29

aun sigo sin resolver esto
nueva pregunta...

si tengo varios registros de un mismo trabajador y de un mismo dia... como puedo hacer para "jalar" solo con 1 en un query?

ejemplo


Cita:

F_DOC AUX Empresa descl otro tdc doc check
------------------------------------------------------ ---------- ------- -----------------------------------------
2011-06-13 10224 1 ZEGARRA BERMUDEZ JAMES SANTIAGO 201519 V01 001-0000988 x
2011-06-13 10224 1 ZEGARRA BERMUDEZ JAMES SANTIAGO 201519 V02 002-0000837 x
2011-06-13 10224 1 ZEGARRA BERMUDEZ JAMES SANTIAGO 201519 V04 004-0000001 x
2011-06-14 10224 1 ZEGARRA BERMUDEZ JAMES SANTIAGO 201519 V04 004-0000304 x
2011-06-15 10224 1 ZEGARRA BERMUDEZ JAMES SANTIAGO 201519 V02 002-0002253 x
2011-06-17 10224 1 ZEGARRA BERMUDEZ JAMES SANTIAGO 201519 V03 003-0003842 x
2011-06-18 10224 1 ZEGARRA BERMUDEZ JAMES SANTIAGO 201519 V04 004-0000728 x
2011-06-21 10224 1 ZEGARRA BERMUDEZ JAMES SANTIAGO 201519 V02 002-0006881 x
2011-06-24 10224 1 ZEGARRA BERMUDEZ JAMES SANTIAGO 201519 V03 003-0008491 x
2011-06-14 10426 1 TANTALEAN BUENO JUAN LUIS 100943 V02 002-0000893 x
2011-06-15 10426 1 TANTALEAN BUENO JUAN LUIS 100943 V02 002-0001849 x
2011-06-15 10426 1 TANTALEAN BUENO JUAN LUIS 100943 V02 002-0002591 x
2011-06-16 10426 1 TANTALEAN BUENO JUAN LUIS 100943 V02 002-0002906 x
Cita:

F_DOC AUX Empresa descl otro tdc doc check
------------------------------------------------------ ---------- ------- -----------------------------------------
2011-06-13 10224 1 ZEGARRA BERMUDEZ JAMES SANTIAGO 201519 V01 001-0000988 x
2011-06-14 10224 1 ZEGARRA BERMUDEZ JAMES SANTIAGO 201519 V04 004-0000304 x
2011-06-15 10224 1 ZEGARRA BERMUDEZ JAMES SANTIAGO 201519 V02 002-0002253 x
2011-06-17 10224 1 ZEGARRA BERMUDEZ JAMES SANTIAGO 201519 V03 003-0003842 x
2011-06-18 10224 1 ZEGARRA BERMUDEZ JAMES SANTIAGO 201519 V04 004-0000728 x
2011-06-21 10224 1 ZEGARRA BERMUDEZ JAMES SANTIAGO 201519 V02 002-0006881 x
2011-06-24 10224 1 ZEGARRA BERMUDEZ JAMES SANTIAGO 201519 V03 003-0008491 x
2011-06-14 10426 1 TANTALEAN BUENO JUAN LUIS 100943 V02 002-0000893 x
2011-06-15 10426 1 TANTALEAN BUENO JUAN LUIS 100943 V02 002-0001849 x
2011-06-16 10426 1 TANTALEAN BUENO JUAN LUIS 100943 V02 002-0002906 x
notese que el dia 13/06/ el trabajador 10224 tenia 3 registros y el dia 15/06 el trabajador 10426 tenia 2

se puede hacer algo como esto?

oscarac 08-11-2011 17:35:02

estoy replanteando de nuevo esto... le sigo dando vueltas y nada


La franja horaria es GMT +2. Ahora son las 04:28:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi