![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
||||
|
||||
|
Los SP y yo ....
Hola a todos/as de nuevo :
De nuevo con una duda sobre los Stored Procedure .... En SQL 7 y con D5 tengo una tabla cabecera que se llama PARTES y otra de detalle que se llama PARTESLIN. Corresponden a los partes horarios de los trabajadores (entrada, salida, horas trabajadas, produccion, etc....). Ahora necesito generar un informe en el que muestre los datos agrupados por trabajador y fecha (referencia cruzada) similar a una hoja de cálculo de excel, se me ocurrio generarlo todo en un SP con este código : Código:
use GESTPROD GO drop table TEMPORAL drop procedure SP_PARTESINFORMES go create table TEMPORAL ( TRBJDOR char(60), NMROORDEN char(15), FECHA datetime, HT float, CNTCTOS float, CH float, VENTAS float) GO create procedure SP_PARTESINFORMES (@ORDENTEMP char(15), @FECHAD Datetime, @FECHAH Datetime) as begin insert into TEMPORAL select PARTES.CDGOTOP, PARTES.NMROORDEN, PARTES.FECHA, PARTESLIN.HT, PARTESLIN.CNTCTOS, PARTESLIN.VENTAS, (PARTESLIN.CNTCTOS / PARTESLIN.HT) AS CH from PARTES inner join PARTESLIN on PARTES.CDGO = PARTESLIN.CDGOPARTE where ((PARTES.NMROORDEN = @ORDENTEMP) AND (PARTES.FECHA BETWEEN @FECHAD AND @FECHAH)) end GO SELECT FECHA, SUM(CASE DAY(FECHA) WHEN 01 THEN HT ELSE 0 END) AS D1, SUM(CASE DAY(FECHA) WHEN 02 THEN HT ELSE 0 END) AS D2, SUM(CASE DAY(FECHA) WHEN 03 THEN HT ELSE 0 END) AS D3, SUM(CASE DAY(FECHA) WHEN 04 THEN HT ELSE 0 END) AS D4, SUM(CASE DAY(FECHA) WHEN 05 THEN HT ELSE 0 END) AS D5, SUM(CASE DAY(FECHA) WHEN 06 THEN HT ELSE 0 END) AS D6, SUM(CASE DAY(FECHA) WHEN 07 THEN HT ELSE 0 END) AS D7, SUM(CASE DAY(FECHA) WHEN 08 THEN HT ELSE 0 END) AS D8, SUM(CASE DAY(FECHA) WHEN 09 THEN HT ELSE 0 END) AS D9, SUM(CASE DAY(FECHA) WHEN 10 THEN HT ELSE 0 END) AS D10, SUM(CASE DAY(FECHA) WHEN 11 THEN HT ELSE 0 END) AS D11, SUM(CASE DAY(FECHA) WHEN 12 THEN HT ELSE 0 END) AS D12, SUM(CASE DAY(FECHA) WHEN 13 THEN HT ELSE 0 END) AS D13, SUM(CASE DAY(FECHA) WHEN 14 THEN HT ELSE 0 END) AS D14, SUM(CASE DAY(FECHA) WHEN 15 THEN HT ELSE 0 END) AS D15, SUM(CASE DAY(FECHA) WHEN 16 THEN HT ELSE 0 END) AS D16, SUM(CASE DAY(FECHA) WHEN 17 THEN HT ELSE 0 END) AS D17, SUM(CASE DAY(FECHA) WHEN 18 THEN HT ELSE 0 END) AS D18, SUM(CASE DAY(FECHA) WHEN 19 THEN HT ELSE 0 END) AS D19, SUM(CASE DAY(FECHA) WHEN 20 THEN HT ELSE 0 END) AS D20, SUM(CASE DAY(FECHA) WHEN 21 THEN HT ELSE 0 END) AS D21, SUM(CASE DAY(FECHA) WHEN 22 THEN HT ELSE 0 END) AS D22, SUM(CASE DAY(FECHA) WHEN 23 THEN HT ELSE 0 END) AS D23, SUM(CASE DAY(FECHA) WHEN 24 THEN HT ELSE 0 END) AS D24, SUM(CASE DAY(FECHA) WHEN 25 THEN HT ELSE 0 END) AS D25, SUM(CASE DAY(FECHA) WHEN 26 THEN HT ELSE 0 END) AS D26, SUM(CASE DAY(FECHA) WHEN 27 THEN HT ELSE 0 END) AS D27, SUM(CASE DAY(FECHA) WHEN 28 THEN HT ELSE 0 END) AS D28, SUM(CASE DAY(FECHA) WHEN 29 THEN HT ELSE 0 END) AS D29, SUM(CASE DAY(FECHA) WHEN 30 THEN HT ELSE 0 END) AS D30, SUM(CASE DAY(FECHA) WHEN 31 THEN HT ELSE 0 END) AS D31 FROM TEMPORAL GROUP BY FECHA GO Código:
Error al crear el cursor Tengo la impresión de que me he complicado en exceso la vida y que debe existir alguna forma más simple de hacerlo, por eso pido si alguien puede ayudarme o indicarme como podría hacerlo. Saludos y gracias ![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|