IF object_id('Student')>0 DROP TABLE dbo.Student GO --学生信息表 CREATE TABLE Student( Id INT PRIMARY KEY IDENTITY(1,1), [Name] VARCHAR(10) NOT NULL,--学生姓名 Result INT NOT NULL,--成绩 UnitedId INT NOT NULL--年级信息表外键 ) IF object_id('United')>0 DROP TABLE United GO --年级信息表 CREATE TABLE United( Id INT PRIMARY KEY IDENTITY(1,1), [NjName] VARCHAR(10) NOT NULL,--年级 [BjName] varchar(10)--班级 ) INSERT dbo.United(NjName,BjName) SELECT '一年级','1班' UNION SELECT '一年级','2班' UNION SELECT '二年级','1班' UNION ALL SELECT '二年级','2班' INSERT dbo.Student(Name,Result,UnitedId) SELECT '张三',80,1 UNION SELECT '李四',90,2 UNION SELECT '王五',88,3 UNION SELECT '小刘',60,4 UNION SELECT '小张',78,3 UNION SELECT '小李',82,1 UNION ALL SELECT '小黑',30,3 --需求:查询出一年级1班和二年级1班的所有成绩大于60分的学生(用存储过程)
--IF object_id('Student')>0 -- DROP TABLE dbo.Student --GO ----学生信息表 --CREATE TABLE Student( -- Id INT PRIMARY KEY IDENTITY(1,1), -- [Name] VARCHAR(10) NOT NULL,--学生姓名 -- Result INT NOT NULL,--成绩 -- UnitedId INT NOT NULL--年级信息表外键 --) --IF object_id('United')>0 -- DROP TABLE United --GO ----年级信息表 --CREATE TABLE United( -- Id INT PRIMARY KEY IDENTITY(1,1), -- [NjName] VARCHAR(10) NOT NULL,--年级 -- [BjName] varchar(10)--班级 --) --INSERT dbo.United(NjName,BjName) -- SELECT '一年级','1班' UNION -- SELECT '一年级','2班' UNION -- SELECT '二年级','1班' UNION ALL -- SELECT '二年级','2班' --INSERT dbo.Student(Name,Result,UnitedId) -- SELECT '张三',80,1 UNION -- SELECT '李四',90,2 UNION -- SELECT '王五',88,3 UNION -- SELECT '小刘',60,4 UNION -- SELECT '小张',78,3 UNION -- SELECT '小李',82,1 UNION ALL -- SELECT '小黑',30,3 create PROC abc AS SELECT s.*,u.njname+bjname '班级' FROM student s INNER JOIN united u ON s.UnitedId=u.id WHERE result>60 AND NjName +BjName IN ('一年级1班','二年级1班') goEXEC abc /* Id Name Result UnitedId 班级 ----------- ---------- ----------- ----------- -------------------- 1 李四 90 2 一年级1班 3 小李 82 1 二年级1班 6 张三 80 1 二年级1班 */
create proc 報表 as begin select '非常複雜' as msg return end
这个怎么放在RTS报表里面,在数据源设定那里校验Sql不通过啊
在sqlserver执行 create PROC abc AS SELECT s.*,u.njname+bjname '班级' FROM student s INNER JOIN united u ON s.UnitedId=u.id WHERE result>60 AND NjName +BjName IN ('一年级1班','二年级1班') go然后在RTS(其实我也不知道这个是啥),连上数据库之后执行EXEC abc
DROP TABLE dbo.Student
GO
--学生信息表
CREATE TABLE Student(
Id INT PRIMARY KEY IDENTITY(1,1),
[Name] VARCHAR(10) NOT NULL,--学生姓名
Result INT NOT NULL,--成绩
UnitedId INT NOT NULL--年级信息表外键
)
IF object_id('United')>0
DROP TABLE United
GO
--年级信息表
CREATE TABLE United(
Id INT PRIMARY KEY IDENTITY(1,1),
[NjName] VARCHAR(10) NOT NULL,--年级
[BjName] varchar(10)--班级
)
INSERT dbo.United(NjName,BjName)
SELECT '一年级','1班' UNION
SELECT '一年级','2班' UNION
SELECT '二年级','1班' UNION ALL
SELECT '二年级','2班'
INSERT dbo.Student(Name,Result,UnitedId)
SELECT '张三',80,1 UNION
SELECT '李四',90,2 UNION
SELECT '王五',88,3 UNION
SELECT '小刘',60,4 UNION
SELECT '小张',78,3 UNION
SELECT '小李',82,1 UNION ALL
SELECT '小黑',30,3
--需求:查询出一年级1班和二年级1班的所有成绩大于60分的学生(用存储过程)
-- DROP TABLE dbo.Student
--GO
----学生信息表
--CREATE TABLE Student(
-- Id INT PRIMARY KEY IDENTITY(1,1),
-- [Name] VARCHAR(10) NOT NULL,--学生姓名
-- Result INT NOT NULL,--成绩
-- UnitedId INT NOT NULL--年级信息表外键
--)
--IF object_id('United')>0
-- DROP TABLE United
--GO
----年级信息表
--CREATE TABLE United(
-- Id INT PRIMARY KEY IDENTITY(1,1),
-- [NjName] VARCHAR(10) NOT NULL,--年级
-- [BjName] varchar(10)--班级
--)
--INSERT dbo.United(NjName,BjName)
-- SELECT '一年级','1班' UNION
-- SELECT '一年级','2班' UNION
-- SELECT '二年级','1班' UNION ALL
-- SELECT '二年级','2班'
--INSERT dbo.Student(Name,Result,UnitedId)
-- SELECT '张三',80,1 UNION
-- SELECT '李四',90,2 UNION
-- SELECT '王五',88,3 UNION
-- SELECT '小刘',60,4 UNION
-- SELECT '小张',78,3 UNION
-- SELECT '小李',82,1 UNION ALL
-- SELECT '小黑',30,3 create PROC abc
AS
SELECT s.*,u.njname+bjname '班级'
FROM student s INNER JOIN united u ON s.UnitedId=u.id
WHERE result>60 AND NjName +BjName IN ('一年级1班','二年级1班')
goEXEC abc
/*
Id Name Result UnitedId 班级
----------- ---------- ----------- ----------- --------------------
1 李四 90 2 一年级1班
3 小李 82 1 二年级1班
6 张三 80 1 二年级1班
*/
as
begin
select '非常複雜' as msg
return
end
create PROC abc
AS
SELECT s.*,u.njname+bjname '班级'
FROM student s INNER JOIN united u ON s.UnitedId=u.id
WHERE result>60 AND NjName +BjName IN ('一年级1班','二年级1班')
go然后在RTS(其实我也不知道这个是啥),连上数据库之后执行EXEC abc