求SQL2000查询语句
T1:(消费记录表)
EMPID vhrchar(10) 工号 EMPNAME VARCHAR(10) 姓名 TOLLDATETIME DATETIME 消费时间
00001 张三 2013-11-10 18:30:30
00002 李四 2013-11-09 11:55:20
00003 王五 2013-11-08 22:20:25
00004 赵六 2013-11-08 07:30:21
T2:(餐次表)
TOLLNAME VARCHAR(10)餐次名称 STARTTIME VARCHAR(5)开始时间 ENDTIME VARCHAR(5) 结束时间
早餐 07:00 08:30
午餐 10:30 12:00
晚餐 17:00 20:00
要求:输出如下格式
EMPID 姓名 TOLLDATETIME 餐次类型
00004 赵六 2013-11-08 07:30:21 早餐
00001 张三 2013-11-10 18:30:30 晚餐
00002 李四 2013-11-09 11:55:20 午餐
00003 王五 2013-11-08 22:20:25 其他时段
求教高手SQL语句,由于餐次表中开始和结束时间可能会做一定变动,所以请不要在SQL语句中指定类似 between 07:30 and 08:30这种写法
[解决办法]
----------------------------------------------------------------
-- Author :DBA_Huangzj(發糞塗牆)
-- Date :2013-12-02 15:31:44
-- Version:
-- Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64)
-- Dec 28 2012 20:23:12
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
--
----------------------------------------------------------------
--> 测试数据:[T1]
if object_id('[T1]') is not null drop table [T1]
go
create table [T1]([EMPID] varchar(5),[EMPNAME] varchar(4),[TOLLDATETIME] datetime)
insert [T1]
select '00001','张三','2013-11-10 18:30:30' union all
select '00002','李四','2013-11-09 11:55:20' union all
select '00003','王五','2013-11-08 22:20:25' union all
select '00004','赵六','2013-11-08 07:30:21'
--> 测试数据:[T2]
if object_id('[T2]') is not null drop table [T2]
go
create table [T2]([TOLLNAME] varchar(4),[STARTTIME] VARCHAR(5) ,[ENDTIME] VARCHAR(5) )
insert [T2]
select '早餐','07:00','08:30' union all
select '午餐','10:30','12:00' union all
select '晚餐','17:00','20:00'
--------------开始查询--------------------------
select t1.*,CASE WHEN t2.tollname IS NULL THEN '其他时段' ELSE t2.tollname END 餐次类型
from [T1] left JOIN [t2] on CONVERT(VARCHAR(5),t1.[TOLLDATETIME],108) BETWEEN CONVERT(VARCHAR(5),[t2].[STARTTIME]) AND CONVERT(VARCHAR(5),[t2].[ENDTIME])
----------------结果----------------------------
/*
EMPID EMPNAME TOLLDATETIME 餐次类型
----- ------- ----------------------- --------
00001 张三 2013-11-10 18:30:30.000 晚餐
00002 李四 2013-11-09 11:55:20.000 午餐
00003 王五 2013-11-08 22:20:25.000 其他时段
00004 赵六 2013-11-08 07:30:21.000 早餐
*/