求教一个SQL语句!!明天使得!挺着急!

sheen7758 2007-03-08 10:19:22
数据库:

-- 国家表
CREATE TABLE Countries (
CountCode INT PRIMARY KEY, -- 国家代码
[Name] VARCHAR(20), -- 国家名称
)
GO

-- 客户表
CREATE TABLE Customers (
CustCode INT PRIMARY KEY, -- 客户代码
[Name] VARCHAR(20), -- 客户名
Phone INT, -- 客户电话
Fax INT, -- 客户传真号码
Email VARCHAR(20), -- 电子邮箱地址
CountCode INT, -- 国家代码
)
GO

-- 客户生产的产品
CREATE TABLE CustProd (
CustCode INT, -- 客户代码
ProdCode INT PRIMARY KEY(ProdCode,CustCode), -- 产品代码
Price MONEY -- 产品价格
)
GO

-- 产品表
CREATE TABLE Products (
ProdCode INT PRIMARY KEY, -- 产品代码
[Name] VARCHAR(20) -- 产品名称
)
GO

web页面可供用户选择5个查询条件:国家,客户名,产品名,价格,电话号码。

这5个条件可以任意组合,其中任何一个条件也可以为空。

要求结果是所有符合条件的:客户名,电话号码,和国家。
...全文
225 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sheen7758 2007-03-08
  • 打赏
  • 举报
回复
谢谢。
mylover002 2007-03-08
  • 打赏
  • 举报
回复
把上面的这一句:inner join Products p cp.ProdCode=p.ProdCode
修改为:inner join Products p on cp.ProdCode=p.ProdCode 少写on
mylover002 2007-03-08
  • 打赏
  • 举报
回复
--写一个Store Procedure
--eg: exec test null,null,null,null,null
create proc test
(
@CountCode int,
@CustCode int,
@ProdCode int,
@Price int,
@Phone int
)
as
select ct.Name, ct.Phone, c.Name
from Customers ct
inner join Countries c on ct.CountCode=c.CountCode
inner join CustProd cp on ct.CustCode=cp.CustCode
inner join Products p cp.ProdCode=p.ProdCode
where @CountCode=case when @CountCode is null then 0 else ct.CountCode end
and @CustCode=case when @CustCode is null then 0 else ct.CustCode end
and @ProdCode =case when @ProdCode is null then 0 else p.ProdCode end
and @Price =case when @Price is null then 0 else cp.Price end
and @Phone =case when @Phone is null then 0 else ct.Phone end

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧