临时表和SQL请求

时间:2018-02-16 14:39:53

标签: sql sql-server

我必须为查询创建一个临时表,但我不知道如何制定它。

我必须创建一个包含每个客户和产品的临时表 客户在所有订单中从产品订购的总数量。

以下是表格和字段:

markers = markers.concat([newMarkersFromDownload]);
//only add newMarkersfromDownload to map because the other ones were already there
  

•Nocust是客户编号。

     

•CtotMont表示客户支出的金额(类型:   SMALLMONEY)。

     

•Nborder表示客户的订单总数。

     

•Noprod是产品编号。

     

•Pxunit表示产品的单价(类型:smallmoney)。

     

•Qtestk表示某种产品的可用商品数量。   该值必须始终> 0

     

•Montorder表示订单金额(类型:smallmoney)。

     

•数字订单Noorder由Nordre

编号的几行组成      

•Qteorder表示订购的商品数量。

     

•Puacc表示授予的单价(不一定是单位   价格,输入smallmoney)。

     

•Montline是由Puacc * Qteorder计算的属性(如Puacc * Qteorder)

我试着开始:

Customer (Nocust (PK), CTotMont, Nborder)
Product (Noprod (PK), Pxunit, Qtestk)
Order (Noorder (PK), Montorder, Nocust)
Line (Noorder (PK), Nordre (PK), Qteorder, Puacc, Noprod, Monttline)

2 个答案:

答案 0 :(得分:0)

按以下步骤操作:

create table #Temp
(
    Qteorder int, 
    Nocust Varchar(50), 
    Noprod Varchar(50), 
)

;WITH all_items
AS (
select Qteorder, Nocust, Noprod 
from line 
join order on line.noorder=order.noorder 
group by Noprod, Nocli, Qtecom
) 

Insert Into #Temp
Select Qteorder,Nocust ,Noprod  from all_items

完成后,不要忘记删除临时表

If(OBJECT_ID('tempdb..#temp') Is Not Null)
Begin
    Drop Table #Temp
End

答案 1 :(得分:-1)

在SQL Server中,有两种类型的临时表存储在tempdb系统数据库中。

  1. 本地临时表:可在连接中访问

    语法:CREATE TABLE ##tablename(column datatype,column1 datatype,...)

  2. 全局临时表:可以在基本连接处于活动状态时跨所有连接访问

    语法:{{1}}