我写了一段SQL,程序中经常要用到,如何把它作为VIEW保存下来?

blacklevin 2004-08-26 02:42:46
一共涉及到4个表
tb_product: 产品表
tb_Item: 具体的商品表
tb_Order: 定单表
tb_OrdItem: 定单里的商品表
要实现的功能是,查找一个商品在以前的定单中,和它一起购买的最多的商品
SQL如下:
select tb_Product.ID,tb_Product.Name
from tb_OrdItem,tb_Item,tb_Product
where
tb_OrdItem.ItemID in(
select top 10 tb_OrdItem.ItemID
from tb_OrdItem
where
tb_OrdItem.OrderId in(
select tb_OrdItem.OrderID from tb_OrdItem where tb_OrdItem.ItemID = 1000
)
and not tb_OrdItem.ItemID = 1000
group by tb_OrdItem.ItemID
order by count(tb_OrdItem.ItemID)
)
and tb_OrdItem.ItemID = tb_Item.ID
and tb_Item.ProdID = tb_Product.ID

1000只是我测试用的,是查找商品ID为1000的商品
我想把这一段SQL保存为VIEW
请问怎么做?解决送100分
谢谢。
...全文
155 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2004-08-26
  • 打赏
  • 举报
回复
以上创建视图或自定义函数的语句均在查询分析器中执行.
xhwang 2004-08-26
  • 打赏
  • 举报
回复
procedure or function 不也一样么
zjcxc 元老 2004-08-26
  • 打赏
  • 举报
回复

--如果要 带参数查询,而且要查询方便的话,可以用自定义函数
create function 函数名(
@ItemID int --要查询的商品ID
)returns table
as
return(
select tb_Product.ID,tb_Product.Name
from tb_OrdItem,tb_Item,tb_Product
where
tb_OrdItem.ItemID in(
select top 10 tb_OrdItem.ItemID
from tb_OrdItem
where
tb_OrdItem.OrderId in(
select tb_OrdItem.OrderID from tb_OrdItem where tb_OrdItem.ItemID = @ItemID
)
and not tb_OrdItem.ItemID = @ItemID
group by tb_OrdItem.ItemID
order by count(tb_OrdItem.ItemID)
)
and tb_OrdItem.ItemID = tb_Item.ID
and tb_Item.ProdID = tb_Product.ID
)
go


--调用
select * from 函数名(1000)
子陌红尘 2004-08-26
  • 打赏
  • 举报
回复
用存储过程,ItemID作为输入参数,输出为查询的结果集。

skyboy0720 2004-08-26
  • 打赏
  • 举报
回复
create view 视图名
as
你的语句
zjcxc 元老 2004-08-26
  • 打赏
  • 举报
回复
--固定的,只查询 商品ID为1000
--因为sql中没有速参数的视图,所以如果直接写视图的话,就是固定的
create view 视图名
as
select tb_Product.ID,tb_Product.Name
from tb_OrdItem,tb_Item,tb_Product
where
tb_OrdItem.ItemID in(
select top 10 tb_OrdItem.ItemID
from tb_OrdItem
where
tb_OrdItem.OrderId in(
select tb_OrdItem.OrderID from tb_OrdItem where tb_OrdItem.ItemID = 1000
)
and not tb_OrdItem.ItemID = 1000
group by tb_OrdItem.ItemID
order by count(tb_OrdItem.ItemID)
)
and tb_OrdItem.ItemID = tb_Item.ID
and tb_Item.ProdID = tb_Product.ID

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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