设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 838|回复: 4
打印 上一主题 下一主题

[查询] 交叉查询

[复制链接]
跳转到指定楼层
1#
发表于 2003-1-24 18:32:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何在SQL里编写交叉查询的方法,请高手指点!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2003-1-25 02:10:00 | 只看该作者
搜索一下旧贴吧,多的是。搜索不到,SQL的联机帮助里也有例子。


[此贴子已经被zhengjialon于2003-1-24 18:09:53编辑过]

点击这里给我发消息

3#
发表于 2003-1-27 00:10:00 | 只看该作者
这个问题确定不容易!
4#
发表于 2003-2-9 02:55:00 | 只看该作者
不支持

点击这里给我发消息

5#
发表于 2003-2-9 17:05:00 | 只看该作者
一个SQL中交叉查询的简单例子(去年做的很长时间没碰了,改一个简单的):
第一步:建立两个表
表名:《员工履历表-履历信息》
包含字段:员工工号、姓名、部门都是文本型
表名:《就餐类型》
包含字段:员工工号、日期、用餐(限定为三个值:早餐、中餐、晚餐)除日期是日期型外其余都是文本型。

第二步:在SQL查询分析器中拷入以下内容并运行(或存为存储过程):

USE [改为你的SQL数据库名]
IF EXISTS(SELECT OBJECT_ID('员工就餐次数'))
DROP PROC 员工就餐次数
GO
CREATE PROC dbo.员工就餐次数 @请输入起始日期 DATETIME,@请输入终止日期 DATETIME
AS
SELECT J.员工工号,L.姓名,L.部门,
     COUNT(CASE J.用餐 WHEN '早餐' THEN '早餐' END) AS 早餐,
     COUNT(CASE J.用餐 WHEN '中餐' THEN '中餐' END) AS 中餐,
     COUNT(CASE J.用餐 WHEN '晚餐' THEN '晚餐' END) AS 晚餐
FROM DBO.就餐类型 AS J LEFT OUTER JOIN DBO.[员工履历表-履历信息] AS L ON J.员工工号=L.员工工号
WHERE J.日期 BETWEEN @请输入起始日期 AND @请输入终止日期
GROUP BY J.员工工号,L.姓名,L.部门
GO

EXEC 员工就餐次数
'2002-1-1','2002-5-1'
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-5-9 19:33 , Processed in 0.097043 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表