2014-07-14 54 views
0
-drop table r.stray_cust; 

CREATE VOLATILE TABLE r.stray_cust 
(
CustomerID INTEGER 
) 
PRIMARY INDEX (CustomerID); 

INSERT INTO r.stray_cust 
SELECT DISTINCT c.customerid AS customerid 
FROM customer c 
WHERE c.customerid 
NOT IN (
SELECT a.customerid 
FROM address a); 

ON COMMIT PRESERVE ROWS; 

select * from r.stray_cust; 

不斷收到錯誤消息 - 查詢失敗,請詳見誤差與Teradata的創造揮發性表

回答

0

好歷史記錄,你檢查的歷史細節?

ON COMMIT是CREATE TABLE揮發的一部分,所以您的查詢應該是:

CREATE VOLATILE TABLE r.stray_cust (CustomerID INTEGER) PRIMARY INDEX (CustomerID) 
ON COMMIT PRESERVE ROWS; 

INSERT INTO r.stray_cust 
SELECT DISTINCT c.customerid AS customerid 
FROM customer c 
WHERE c.customerid NOT IN (SELECT a.customerid FROM address a); 

或單步:

CREATE VOLATILE TABLE r.stray_cust AS 
(
    SELECT DISTINCT c.customerid AS customerid 
    FROM customer c 
    WHERE c.customerid NOT IN (SELECT a.customerid FROM address a) 
) 
PRIMARY INDEX (CustomerID) 
ON COMMIT PRESERVE ROWS; 

INSERT INTO r.stray_cust ;

+0

是的,但真的沒有提供任何東西.. – user3772443

+0

第一個解決方案工作完美!感謝Dnoeth ......但是在易變的表格中,你只能選擇一列。我試圖添加更多的列並收到錯誤消息:INSERT FAILED。 3813:位置分配列表中有太多的值 – user3772443

+0

從頭開始..我想通了。 = / – user3772443