我试图在临时表中创建不同的数据,尝试使用create table #tabletemp来简化它仍然是错误的,它表示无法识别数据类型接近distinct和逗号或关闭括号预计在ponumber附近
这是代码:
CREATE TEMPORARY TABLE t1(
SELECT DISTINCT
PONumber varchar(10),
POdate varchar(10),
customername varchar(35),
description varchar(22)
FROM tb_po
);
SELECT
p.PONumber,
p.podate,
p.customername,
p.description,
(
SELECT SUM(q.deliveryqty)
FROM tb_spb q
WHERE p.PONumber = q.PONumber AND p.description = q.description
) AS Total
FROM t1 p
答案 0 :(得分:1)
如果你真的需要它在临时表中,另一种方法是使用" SELECT INTO"其中您不需要声明临时表的创建。 (虽然创建表然后插入记录是更优选的方法https://stackoverflow.com/a/6948850/6344844)
SELECT DISTINCT
p.PONumber,
p.POdate,
p.customername,
p.[description],
SUM(q.deliveryqty)
INTO #TEMPTABLE_NAME
FROM tb_po p
INNER JOIN tb_spb q
ON p.PONumber = q.PONumber
AND p.description = q.description
GROUP BY p.PONumber,p.POdate,p.customername,p.[description]
SELECT * FROM #TEMPTABLE_NAME
DROP TABLE #TEMPTABLE_NAME
答案 1 :(得分:0)
您必须先创建表,然后插入表中。对于SQL Server你可以这样做。
CREATE TABLE TEMPORARY(
PONumber varchar(10),
POdate varchar(10),
customername varchar(35),
description varchar(22)
);
insert into TEMPORARY SELECT DISTINCT
PONumber varchar(10),
POdate varchar(10),
customername varchar(35),
description varchar(22)
FROM
tb_po ;
如果要在SQL Server中创建临时表,则在表名之前使用#。 供参考http://www.c-sharpcorner.com/uploadfile/b19d5a/temporary-and-global-temporary-table-in-sql-server-2008/
答案 2 :(得分:0)
您无需创建临时表来获取所需的结果。以下是基于您的查询的修订后的查询:
lastname = list()