2014-07-26 3 views
0

SQL Server 2005의 직원을위한 일지로 작동하는 데이터베이스가 있습니다. 모든 정보는 한 달의 테이블 한 달에 채워집니다. 체크인, 체크 아웃, 체크 - 인 오후, 체크 - 아웃 오후, 코멘트가 있습니다. 그것을 채우기 위해한 행을 여러 줄로 제동 (분할)

USE [BitacoraTrabajo] 
GO 
/****** Objeto: Table [dbo].[B_Bitacora] Fecha de la secuencia de comandos: 07/28/2014 10:25:25 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
SET ANSI_PADDING ON 
GO 
CREATE TABLE [dbo].[B_Bitacora](
    [BBIT_IdBitacora] [int] IDENTITY(1,1) NOT NULL, 
    [BUSU_IdUsuario] [int] NOT NULL, 
    [BBIT_Fecha] [datetime] NOT NULL, 
    [BBIT_01ManEntra] [datetime] NULL, 
    [BBIT_01ManSale] [datetime] NULL, 
    [BBIT_01TarEntra] [datetime] NULL, 
    [BBIT_01TarSale] [datetime] NULL, 
    [BBIT_01Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_02ManEntra] [datetime] NULL, 
    [BBIT_02ManSale] [datetime] NULL, 
    [BBIT_02TarEntra] [datetime] NULL, 
    [BBIT_02TarSale] [datetime] NULL, 
    [BBIT_02Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_03ManEntra] [datetime] NULL, 
    [BBIT_03ManSale] [datetime] NULL, 
    [BBIT_03TarEntra] [datetime] NULL, 
    [BBIT_03TarSale] [datetime] NULL, 
    [BBIT_03Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_04ManEntra] [datetime] NULL, 
    [BBIT_04ManSale] [datetime] NULL, 
    [BBIT_04TarEntra] [datetime] NULL, 
    [BBIT_04TarSale] [datetime] NULL, 
    [BBIT_04Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_05ManEntra] [datetime] NULL, 
    [BBIT_05ManSale] [datetime] NULL, 
    [BBIT_05TarEntra] [datetime] NULL, 
    [BBIT_05TarSale] [datetime] NULL, 
    [BBIT_05Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_06ManEntra] [datetime] NULL, 
    [BBIT_06ManSale] [datetime] NULL, 
    [BBIT_06TarEntra] [datetime] NULL, 
    [BBIT_06TarSale] [datetime] NULL, 
    [BBIT_06Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_07ManEntra] [datetime] NULL, 
    [BBIT_07ManSale] [datetime] NULL, 
    [BBIT_07TarEntra] [datetime] NULL, 
    [BBIT_07TarSale] [datetime] NULL, 
    [BBIT_07Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_08ManEntra] [datetime] NULL, 
    [BBIT_08ManSale] [datetime] NULL, 
    [BBIT_08TarEntra] [datetime] NULL, 
    [BBIT_08TarSale] [datetime] NULL, 
    [BBIT_08Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_09ManEntra] [datetime] NULL, 
    [BBIT_09ManSale] [datetime] NULL, 
    [BBIT_09TarEntra] [datetime] NULL, 
    [BBIT_09TarSale] [datetime] NULL, 
    [BBIT_09Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_10ManEntra] [datetime] NULL, 
    [BBIT_10ManSale] [datetime] NULL, 
    [BBIT_10TarEntra] [datetime] NULL, 
    [BBIT_10TarSale] [datetime] NULL, 
    [BBIT_10Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_11ManEntra] [datetime] NULL, 
    [BBIT_11ManSale] [datetime] NULL, 
    [BBIT_11TarEntra] [datetime] NULL, 
    [BBIT_11TarSale] [datetime] NULL, 
    [BBIT_11Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_12ManEntra] [datetime] NULL, 
    [BBIT_12ManSale] [datetime] NULL, 
    [BBIT_12TarEntra] [datetime] NULL, 
    [BBIT_12TarSale] [datetime] NULL, 
    [BBIT_12Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_13ManEntra] [datetime] NULL, 
    [BBIT_13ManSale] [datetime] NULL, 
    [BBIT_13TarEntra] [datetime] NULL, 
    [BBIT_13TarSale] [datetime] NULL, 
    [BBIT_13Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_14ManEntra] [datetime] NULL, 
    [BBIT_14ManSale] [datetime] NULL, 
    [BBIT_14TarEntra] [datetime] NULL, 
    [BBIT_14TarSale] [datetime] NULL, 
    [BBIT_14Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_15ManEntra] [datetime] NULL, 
    [BBIT_15ManSale] [datetime] NULL, 
    [BBIT_15TarEntra] [datetime] NULL, 
    [BBIT_15TarSale] [datetime] NULL, 
    [BBIT_15Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_16ManEntra] [datetime] NULL, 
    [BBIT_16ManSale] [datetime] NULL, 
    [BBIT_16TarEntra] [datetime] NULL, 
    [BBIT_16TarSale] [datetime] NULL, 
    [BBIT_16Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_17ManEntra] [datetime] NULL, 
    [BBIT_17ManSale] [datetime] NULL, 
    [BBIT_17TarEntra] [datetime] NULL, 
    [BBIT_17TarSale] [datetime] NULL, 
    [BBIT_17Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_18ManEntra] [datetime] NULL, 
    [BBIT_18ManSale] [datetime] NULL, 
    [BBIT_18TarEntra] [datetime] NULL, 
    [BBIT_18TarSale] [datetime] NULL, 
    [BBIT_18Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_19ManEntra] [datetime] NULL, 
    [BBIT_19ManSale] [datetime] NULL, 
    [BBIT_19TarEntra] [datetime] NULL, 
    [BBIT_19TarSale] [datetime] NULL, 
    [BBIT_19Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_20ManEntra] [datetime] NULL, 
    [BBIT_20ManSale] [datetime] NULL, 
    [BBIT_20TarEntra] [datetime] NULL, 
    [BBIT_20TarSale] [datetime] NULL, 
    [BBIT_20Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_21ManEntra] [datetime] NULL, 
    [BBIT_21ManSale] [datetime] NULL, 
    [BBIT_21TarEntra] [datetime] NULL, 
    [BBIT_21TarSale] [datetime] NULL, 
    [BBIT_21Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_22ManEntra] [datetime] NULL, 
    [BBIT_22ManSale] [datetime] NULL, 
    [BBIT_22TarEntra] [datetime] NULL, 
    [BBIT_22TarSale] [datetime] NULL, 
    [BBIT_22Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_23ManEntra] [datetime] NULL, 
    [BBIT_23ManSale] [datetime] NULL, 
    [BBIT_23TarEntra] [datetime] NULL, 
    [BBIT_23TarSale] [datetime] NULL, 
    [BBIT_23Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_24ManEntra] [datetime] NULL, 
    [BBIT_24ManSale] [datetime] NULL, 
    [BBIT_24TarEntra] [datetime] NULL, 
    [BBIT_24TarSale] [datetime] NULL, 
    [BBIT_24Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_25ManEntra] [datetime] NULL, 
    [BBIT_25ManSale] [datetime] NULL, 
    [BBIT_25TarEntra] [datetime] NULL, 
    [BBIT_25TarSale] [datetime] NULL, 
    [BBIT_25Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_26ManEntra] [datetime] NULL, 
    [BBIT_26ManSale] [datetime] NULL, 
    [BBIT_26TarEntra] [datetime] NULL, 
    [BBIT_26TarSale] [datetime] NULL, 
    [BBIT_26Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_27ManEntra] [datetime] NULL, 
    [BBIT_27ManSale] [datetime] NULL, 
    [BBIT_27TarEntra] [datetime] NULL, 
    [BBIT_27TarSale] [datetime] NULL, 
    [BBIT_27Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_28ManEntra] [datetime] NULL, 
    [BBIT_28ManSale] [datetime] NULL, 
    [BBIT_28TarEntra] [datetime] NULL, 
    [BBIT_28TarSale] [datetime] NULL, 
    [BBIT_28Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_29ManEntra] [datetime] NULL, 
    [BBIT_29ManSale] [datetime] NULL, 
    [BBIT_29TarEntra] [datetime] NULL, 
    [BBIT_29TarSale] [datetime] NULL, 
    [BBIT_29Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_30ManEntra] [datetime] NULL, 
    [BBIT_30ManSale] [datetime] NULL, 
    [BBIT_30TarEntra] [datetime] NULL, 
    [BBIT_30TarSale] [datetime] NULL, 
    [BBIT_30Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
    [BBIT_31ManEntra] [datetime] NULL, 
    [BBIT_31ManSale] [datetime] NULL, 
    [BBIT_31TarEntra] [datetime] NULL, 
    [BBIT_31TarSale] [datetime] NULL, 
    [BBIT_31Comentario] [varchar](100) COLLATE Modern_Spanish_CI_AS NULL, 
CONSTRAINT [PK_B_Bitacora] PRIMARY KEY CLUSTERED 
(
    [BBIT_IdBitacora] ASC 
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] 
) ON [PRIMARY] 

GO 
SET ANSI_PADDING OFF 
GO 
ALTER TABLE [dbo].[B_Bitacora] WITH CHECK ADD CONSTRAINT [FK_B_Bitacora_B_Usuario] FOREIGN KEY([BUSU_IdUsuario]) 
REFERENCES [dbo].[B_Usuario] ([BUSU_IdUsuario]) 
GO 
ALTER TABLE [dbo].[B_Bitacora] CHECK CONSTRAINT [FK_B_Bitacora_B_Usuario] 

내가 저장 프로 시저를 사용하여 매일의 경우 :

EXEC @return_value = [dbo].[Sp_InsertBitacora] 
     @BUSU_IdUsuario = 1416127, 
     @BBIT_Fecha =   '2014/22/06 00:00:00.000', 

     @BBIT_01ManEntra =  '2014/01/05 07:50:00.000', 
     @BBIT_01ManSale =  '2014/01/05 14:05:00.000', 
     @BBIT_01TarEntra =  '2014/01/05 15:55:00.000', 
     @BBIT_01TarSale =  '2014/01/05 19:10:00.000', 
     @BBIT_01Comentario = null, 
     @BBIT_02ManEntra =  '2014/02/05 07:51:00.000', 
     @BBIT_02ManSale =  '2014/02/05 14:04:00.000', 
     @BBIT_02TarEntra =  '2014/02/05 15:50:00.000', 
     @BBIT_02TarSale =  '2014/02/05 19:20:00.000', 
     @BBIT_02Comentario = null, 
     @BBIT_03ManEntra =  '2014/03/05 07:52:00.000', 
     @BBIT_03ManSale =  '2014/03/05 14:06:00.000', 
     @BBIT_03TarEntra =  '2014/03/05 15:57:00.000', 
     @BBIT_03TarSale =  '2014/03/05 19:11:00.000', 
     @BBIT_03Comentario = null, 
     @BBIT_04ManEntra =  '2014/04/05 07:53:00.000', 
     @BBIT_04ManSale =  '2014/04/05 14:07:00.000', 
     @BBIT_04TarEntra =  '2014/04/05 15:58:00.000', 
     @BBIT_04TarSale =  '2014/04/05 19:13:00.000', 
     @BBIT_04Comentario = null, 
     @BBIT_05ManEntra =  '2014/05/05 07:54:00.000', 
     @BBIT_05ManSale =  '2014/05/05 14:00:00.000', 
     @BBIT_05TarEntra =  '2014/05/05 15:59:00.000', 
     @BBIT_05TarSale =  '2014/05/05 19:14:00.000', 
     @BBIT_05Comentario = null, 
     @BBIT_06ManEntra =  null, 
     @BBIT_06ManSale =  null, 
     @BBIT_06TarEntra =  null, 
     @BBIT_06TarSale =  null, 
     @BBIT_06Comentario = 'Fin de Semana', 
     @BBIT_07ManEntra =  null, 
     @BBIT_07ManSale =  null, 
     @BBIT_07TarEntra =  null, 
     @BBIT_07TarSale =  null, 
     @BBIT_07Comentario = 'Fin de Semana', 
     @BBIT_08ManEntra =  '2014/08/05 07:58:00.000', 
     @BBIT_08ManSale =  '2014/08/05 14:02:00.000', 
     @BBIT_08TarEntra =  '2014/08/05 15:58:00.000', 
     @BBIT_08TarSale =  '2014/08/05 19:18:00.000', 
     @BBIT_08Comentario = null, 
     @BBIT_09ManEntra =  '2014/09/05 07:59:00.000', 
     @BBIT_09ManSale =  '2014/09/05 14:04:00.000', 
     @BBIT_09TarEntra =  '2014/09/05 15:54:00.000', 
     @BBIT_09TarSale =  '2014/09/05 19:19:00.000', 
     @BBIT_09Comentario = null, 
     @BBIT_10ManEntra =  '2014/10/05 07:40:00.000', 
     @BBIT_10ManSale =  '2014/10/05 14:15:00.000', 
     @BBIT_10TarEntra =  '2014/10/05 15:45:00.000', 
     @BBIT_10TarSale =  '2014/10/05 19:20:00.000', 
     @BBIT_10Comentario = null, 
     @BBIT_11ManEntra =  '2014/11/05 07:41:00.000', 
     @BBIT_11ManSale =  '2014/11/05 14:11:00.000', 
     @BBIT_11TarEntra =  '2014/11/05 15:46:00.000', 
     @BBIT_11TarSale =  '2014/11/05 19:21:00.000', 
     @BBIT_11Comentario = null, 
     @BBIT_12ManEntra =  '2014/12/05 07:50:00.000', 
     @BBIT_12ManSale =  '2014/12/05 14:05:00.000', 
     @BBIT_12TarEntra =  '2014/12/05 15:55:00.000', 
     @BBIT_12TarSale =  '2014/12/05 19:10:00.000', 
     @BBIT_12Comentario = null, 
     @BBIT_13ManEntra =  null, 
     @BBIT_13ManSale =  null, 
     @BBIT_13TarEntra =  null, 
     @BBIT_13TarSale =  null, 
     @BBIT_13Comentario = 'Fin de Semana', 
     @BBIT_14ManEntra =  null, 
     @BBIT_14ManSale =  null, 
     @BBIT_14TarEntra =  null, 
     @BBIT_14TarSale =  null, 
     @BBIT_14Comentario = 'Fin de Semana', 
     @BBIT_15ManEntra =  '2014/15/05 07:50:00.000', 
     @BBIT_15ManSale =  '2014/15/05 14:05:00.000', 
     @BBIT_15TarEntra =  '2014/15/05 15:55:00.000', 
     @BBIT_15TarSale =  '2014/15/05 19:10:00.000', 
     @BBIT_15Comentario = null, 
     @BBIT_16ManEntra =  '2014/16/05 07:50:00.000', 
     @BBIT_16ManSale =  '2014/16/05 14:05:00.000', 
     @BBIT_16TarEntra =  '2014/16/05 15:55:00.000', 
     @BBIT_16TarSale =  '2014/16/05 19:10:00.000', 
     @BBIT_16Comentario = null, 
     @BBIT_17ManEntra =  '2014/17/05 07:50:00.000', 
     @BBIT_17ManSale =  '2014/17/05 14:05:00.000', 
     @BBIT_17TarEntra =  '2014/17/05 15:55:00.000', 
     @BBIT_17TarSale =  '2014/17/05 19:10:00.000', 
     @BBIT_17Comentario = null, 
     @BBIT_18ManEntra =  '2014/18/05 07:50:00.000', 
     @BBIT_18ManSale =  '2014/18/05 14:05:00.000', 
     @BBIT_18TarEntra =  '2014/18/05 15:55:00.000', 
     @BBIT_18TarSale =  '2014/18/05 19:10:00.000', 
     @BBIT_18Comentario = null, 
     @BBIT_19ManEntra =  '2014/19/05 07:50:00.000', 
     @BBIT_19ManSale =  '2014/19/05 14:05:00.000', 
     @BBIT_19TarEntra =  '2014/19/05 15:55:00.000', 
     @BBIT_19TarSale =  '2014/19/05 19:10:00.000', 
     @BBIT_19Comentario = null, 
     @BBIT_20ManEntra =  null, 
     @BBIT_20ManSale =  null, 
     @BBIT_20TarEntra =  null, 
     @BBIT_20TarSale =  null, 
     @BBIT_20Comentario = 'Fin de Semana', 
     @BBIT_21ManEntra =  null, 
     @BBIT_21ManSale =  null, 
     @BBIT_21TarEntra =  null, 
     @BBIT_21TarSale =  null, 
     @BBIT_21Comentario = 'Fin de Semana', 
     @BBIT_22ManEntra =  '2014/22/05 07:50:00.000', 
     @BBIT_22ManSale =  '2014/22/05 14:05:00.000', 
     @BBIT_22TarEntra =  '2014/22/05 15:55:00.000', 
     @BBIT_22TarSale =  '2014/22/05 19:10:00.000', 
     @BBIT_22Comentario = null, 
     @BBIT_23ManEntra =  '2014/23/05 07:50:00.000', 
     @BBIT_23ManSale =  '2014/23/05 14:05:00.000', 
     @BBIT_23TarEntra =  '2014/23/05 15:55:00.000', 
     @BBIT_23TarSale =  '2014/23/05 19:10:00.000', 
     @BBIT_23Comentario = null, 
     @BBIT_24ManEntra =  '2014/24/05 07:50:00.000', 
     @BBIT_24ManSale =  '2014/24/05 14:05:00.000', 
     @BBIT_24TarEntra =  '2014/24/05 15:55:00.000', 
     @BBIT_24TarSale =  '2014/24/05 19:10:00.000', 
     @BBIT_24Comentario = null, 
     @BBIT_25ManEntra =  '2014/25/05 07:50:00.000', 
     @BBIT_25ManSale =  '2014/25/05 14:05:00.000', 
     @BBIT_25TarEntra =  '2014/25/05 15:55:00.000', 
     @BBIT_25TarSale =  '2014/25/05 19:10:00.000', 
     @BBIT_25Comentario = null, 
     @BBIT_26ManEntra =  '2014/26/05 07:50:00.000', 
     @BBIT_26ManSale =  '2014/26/05 14:05:00.000', 
     @BBIT_26TarEntra =  '2014/26/05 15:55:00.000', 
     @BBIT_26TarSale =  '2014/26/05 19:10:00.000', 
     @BBIT_26Comentario = null, 
     @BBIT_27ManEntra =  null, 
     @BBIT_27ManSale =  null, 
     @BBIT_27TarEntra =  null, 
     @BBIT_27TarSale =  null, 
     @BBIT_27Comentario = 'Fin de Semana', 
     @BBIT_28ManEntra =  null, 
     @BBIT_28ManSale =  null, 
     @BBIT_28TarEntra =  null, 
     @BBIT_28TarSale =  null, 
     @BBIT_28Comentario = 'Fin de Semana', 
     @BBIT_29ManEntra =  '2014/29/05 07:50:00.000', 
     @BBIT_29ManSale =  '2014/29/05 14:05:00.000', 
     @BBIT_29TarEntra =  '2014/29/05 15:55:00.000', 
     @BBIT_29TarSale =  '2014/29/05 19:10:00.000', 
     @BBIT_29Comentario = null, 
     @BBIT_30ManEntra =  '2014/30/05 07:50:00.000', 
     @BBIT_30ManSale =  '2014/30/05 14:05:00.000', 
     @BBIT_30TarEntra =  '2014/30/05 15:55:00.000', 
     @BBIT_30TarSale =  '2014/30/05 19:10:00.000', 
     @BBIT_30Comentario = null, 
     @BBIT_31ManEntra =  '2014/31/05 07:50:00.000', 
     @BBIT_31ManSale =  '2014/31/05 14:05:00.000', 
     @BBIT_31TarEntra =  '2014/31/05 15:55:00.000', 
     @BBIT_31TarSale =  '2014/31/05 19:10:00.000', 
     @BBIT_31Comentario = null 

SELECT 'Return Value' = @return_value 

GO 

문제는 내가이 정보를 표시 할 필요가있다 으로는 테이블의 구조는 다음과 같이 진행 요청 특정 형식, 달의 매일 하나의 행 :

 
Day | CheckinMornig | CheckOutMonrning | CheckInAfternoon | CheckOutAfternoon | Comment 

    1 | 7:00 pm |  2:00 pm  |  4:00 pm |  7:00 pm  | none 

    2 | 7:05 pm |  1:50 pm  |  3:55 pm  |  7:10 pm  | none 

    3 | null  |   null  |  null  |   null  | weekend 

    4 | null  |   null  |  null  |   null  | weekend 

    ... 

    31 | 7:05 pm |  1:50 pm  |  3:55 pm  |  7:10 pm  | none 

나는 매일 UNION를 사용하려고 :

SELECT 
    LTRIM(RIGHT(CONVERT(VARCHAR(20), BBIT_01ManEntra, 100), 7)) as CheckInMorning 
    ,LTRIM(RIGHT(CONVERT(VARCHAR(20), BBIT_01ManSale, 100), 7)) as CheckOutMorning 
    ,LTRIM(RIGHT(CONVERT(VARCHAR(20), BBIT_01TarEntra, 100), 7)) as CheckInAfternoon 
    ,LTRIM(RIGHT(CONVERT(VARCHAR(20), BBIT_01TarSale, 100), 7)) as CheckOutAfternoon 
    ,BBIT_01comentario as Comment 
FROM [BitacoraTrabajo].[dbo].[B_Bitacora] 
where BUSU_IdUsuario = 1416127 
union 
SELECT 
    LTRIM(RIGHT(CONVERT(VARCHAR(20), BBIT_02ManEntra, 100), 7)) as CheckInMorning 
    ,LTRIM(RIGHT(CONVERT(VARCHAR(20), BBIT_02ManSale, 100), 7)) as CheckOutMorning 
    ,LTRIM(RIGHT(CONVERT(VARCHAR(20), BBIT_02TarEntra, 100), 7)) as CheckInAfternoon 
    ,LTRIM(RIGHT(CONVERT(VARCHAR(20), BBIT_02TarSale, 100), 7)) as CheckOutAfternoon 
    ,BBIT_02comentario as Comment 
FROM [BitacoraTrabajo].[dbo].[B_Bitacora] 
where BUSU_IdUsuario = 1416127 

그러나 매우 나쁜 생각과 자원 낭비처럼 보일뿐만 아니라, null이있는 같은 시간과 주말을 가진 요일들을 그룹화하기 때문에, 역시 작동하지 않습니다.

그래서 필요한 형식으로보기 또는 저장 프로 시저를 얻는 방법은 무엇입니까?

+1

'[BitacoraTrabajo]. [dbo]. [B_Bitacora]' – Nizam

+0

테이블의 구조를 제공하면 더 도움이 될 것입니다. 이 행에는 사용자가 월을 마감 한 날짜와이 사용자의 ID가 포함됩니다. 그게 맞습니까? – Nizam

+0

당신이 맞습니다 Nazim 나는 메인 테이블의 구조를 보여주기 위해 게시물을 편집했습니다. – lGansito

답변

0

당신이 시도 할 수 : 달이 폐쇄하고 한 사용자의 ID 때 당신은 확실히 날짜를 정의해야합니다

DECLARE @USERID INT = 1416127 
DECLARE @FECHA DATETIME = '2014-06-22' 

IF OBJECT_ID('dbo.TBL_DESTINATION', 'U') IS NOT NULL DROP TABLE dbo.TBL_DESTINATION 

DECLARE TABLE dbo.TBL_DESTINATION (
    DAY INT, 
    CheckInMorning datetime, 
    CheckOutMorning datetime, 
    CheckInAfternoon datetime, 
    CheckOutAfternoon diatomite, 
    Comentario VARCHAR(250) 
) 

DECLARE @DAY INT = 1 
DECLARE @SQL NVARCHAR(MAX) 

WHILE @DAY <= 31 
BEGIN 
    SET @SQL = 'INSERT INTO TBL_DESTINATION SELECT ' + CAST(@DAY as VARCHAR) + ', 
     LTRIM(RIGHT(CONVERT(VARCHAR(20), BBIT_' + case when @DAY < 10 then '0' + cast(@DAY as varchar) else cast(@DAY as varchar) end + 'ManEntra, 100), 7)) as CheckInMorning 
     ,LTRIM(RIGHT(CONVERT(VARCHAR(20), BBIT_' + case when @DAY < 10 then '0' + cast(@DAY as varchar) else cast(@DAY as varchar) end + 'ManSale, 100), 7)) as CheckOutMorning 
     ,LTRIM(RIGHT(CONVERT(VARCHAR(20), BBIT_' + case when @DAY < 10 then '0' + cast(@DAY as varchar) else cast(@DAY as varchar) end + 'TarEntra, 100), 7)) as CheckInAfternoon 
     ,LTRIM(RIGHT(CONVERT(VARCHAR(20), BBIT_' + case when @DAY < 10 then '0' + cast(@DAY as varchar) else cast(@DAY as varchar) end + 'TarSale, 100), 7)) as CheckOutAfternoon 
     ,BBIT_' + case when @DAY < 10 then '0' + cast(@DAY as varchar) else cast(@DAY as varchar) end + 'comentario as Comment 
    FROM [BitacoraTrabajo].[dbo].[B_Bitacora] 
    where BUSU_IdUsuario = ' + cast(@USERID as varchar) 
    ' and BBIT_Fecha = ' + cast(@FECHA as varchar) 

    EXECUTE sp_executesql @SQL 

    SET @DAY = @DAY + 1 
END 

SELECT * FROM dbo.TBL_DESTINATION 

. 이 코드를 실행하는 프로 시저를 만들고 BUSU_IdUsuarioBBIT_Fecha 값을 매개 변수로받을 수 있습니다. 질의 결과의 SELECT에이 매개 변수를 넣는 것은 당신에게 달려 있습니다.

+1

고맙습니다. 많이 시험해 보겠습니다. – lGansito

관련 문제