我写了一个存储过程是这样的 我想实现当没有输入DZ里的姓名时,也可以根据复本控制号显示查询这本书,但是我没有输入这个DZ的姓名时,就不能显示,可能是这里写错了:那怎么写呢?如里去掉下面的话,那输入DZ里的姓名就没有了,请教!!!!!!!
dbo.JY ON dbo.FB.复本控制号 = dbo.JY.复本控制号 INNER JOIN
dbo.DZ ON dbo.JY.借书证号 = dbo.DZ.借书证号 下面是存储过程
CREATE PROCEDURE p_selectSK
@复本控制号 varchar(8)='%'
AS
begin
select dbo.FB.复本控制号, dbo.YB.书名, dbo.FL.类别, dbo.YB.作者, dbo.YB.出版社, dbo.YB.价格, dbo.YB.页数, dbo.YB.版次, dbo.YB.语种, dbo.DZ.姓名 AS 借书人
FROM dbo.FL INNER JOIN
dbo.YB ON dbo.FL.分类号 = dbo.YB.索书号 INNER JOIN
dbo.FB ON dbo.YB.样本控制号 = dbo.FB.样本控制号 INNER JOIN
dbo.JY ON dbo.FB.复本控制号 = dbo.JY.复本控制号 INNER JOIN
dbo.DZ ON dbo.JY.借书证号 = dbo.DZ.借书证号 where FB.复本控制号 like @复本控制号
end
GO
dbo.JY ON dbo.FB.复本控制号 = dbo.JY.复本控制号 INNER JOIN
dbo.DZ ON dbo.JY.借书证号 = dbo.DZ.借书证号 下面是存储过程
CREATE PROCEDURE p_selectSK
@复本控制号 varchar(8)='%'
AS
begin
select dbo.FB.复本控制号, dbo.YB.书名, dbo.FL.类别, dbo.YB.作者, dbo.YB.出版社, dbo.YB.价格, dbo.YB.页数, dbo.YB.版次, dbo.YB.语种, dbo.DZ.姓名 AS 借书人
FROM dbo.FL INNER JOIN
dbo.YB ON dbo.FL.分类号 = dbo.YB.索书号 INNER JOIN
dbo.FB ON dbo.YB.样本控制号 = dbo.FB.样本控制号 INNER JOIN
dbo.JY ON dbo.FB.复本控制号 = dbo.JY.复本控制号 INNER JOIN
dbo.DZ ON dbo.JY.借书证号 = dbo.DZ.借书证号 where FB.复本控制号 like @复本控制号
end
GO
解决方案 »
- 如何调用SQL SERVER 的DLLs 文件来执行DTS包
- INSTALLSHIELD EXPRESS FOR DELPHI5 做的安装程序安装完毕后,为甚么在”添加删除程序”里看不到程序?
- 特急!!!有关dll中的自定义结构的参数的传递问题
- delphi怎么样和sql-server联系起来使用啊 ?
- 关于遍历读取硬盘文件的问题
- 怎样删除数据表中重复的内容?怎样知道数据表中记录数目?
- 如何编写象 outlook 一样,可发图文并茂的htm页面的邮件系统?(400分)
- ip数据包
- 一个ADO的问题
- 请问如何判断FTP是否成功下载完成?
- 确定DbGrid单元格的数据是否发生改变,怎么办
- 用什么方法可以侦测到用户修改系统时间?
@复本控制号 varchar(8)='%'
AS
begin
declare @cc varchar(9)
select @cc = IsNull(@复本控制号,'')+'%'
select dbo.FB.复本控制号, dbo.YB.书名, dbo.FL.类别, dbo.YB.作者, dbo.YB.出版社, dbo.YB.价格, dbo.YB.页数, dbo.YB.版次, dbo.YB.语种, dbo.DZ.姓名 AS 借书人
FROM dbo.FL INNER JOIN
dbo.YB ON dbo.FL.分类号 = dbo.YB.索书号 INNER JOIN
dbo.FB ON dbo.YB.样本控制号 = dbo.FB.样本控制号 INNER JOIN
dbo.JY ON dbo.FB.复本控制号 = dbo.JY.复本控制号 INNER JOIN
dbo.DZ ON dbo.JY.借书证号 = dbo.DZ.借书证号 where FB.复本控制号 like @cc
end
@复本控制号 varchar(8)
AS
begin
select dbo.FB.复本控制号, dbo.YB.书名, dbo.FL.类别, dbo.YB.作者, dbo.YB.出版社, dbo.YB.价格, dbo.YB.页数, dbo.YB.版次, dbo.YB.语种, dbo.DZ.姓名 AS 借书人
FROM dbo.FL INNER JOIN
dbo.YB ON dbo.FL.分类号 = dbo.YB.索书号 INNER JOIN
dbo.FB ON dbo.YB.样本控制号 = dbo.FB.样本控制号 INNER JOIN
dbo.JY ON dbo.FB.复本控制号 = dbo.JY.复本控制号 INNER JOIN
dbo.DZ ON dbo.JY.借书证号 = dbo.DZ.借书证号 where (FB.复本控制号 like @复本控制号) or (@复本控制号 is null)
end
GO
就不能显示,YB,FB前面几个表的字段就不能显示,而当我输入DZ表里的姓名字段时
就可以显示查询了,我要的功能是我不输入DZ表里的姓名这个字段其它的YB,FB也可以显示
DZ表里的姓名就没有内容。
问题是我用了dbo.JY ON dbo.FB.复本控制号 = dbo.JY.复本控制号 INNER JOIN
dbo.DZ ON dbo.JY.借书证号 = dbo.DZ.借书证号
根据主外鍵的联系所显示的
不要这里的话几个表又不能联起来