SQL从两列和两个表中追加不同的值

SQL从两列和两个表中追加不同的值,sql,append,Sql,Append,我试图创建SQL代码,从两列中获取不同的值并“附加”它们。我指的是下表: Account Article ----------------- 1 1 1 2 2 3 应产生以下结果: Account Article ----------------- 1 1 1 2 1 3 2 1 2 2 2 3 我使用一

我试图创建SQL代码,从两列中获取不同的值并“附加”它们。我指的是下表:

Account   Article
-----------------
   1        1
   1        2
   2        3
应产生以下结果:

Account   Article
-----------------
   1        1
   1        2
   1        3
   2        1
   2        2
   2        3
我使用一个并集从两个表执行此操作,因此想法是获得两个表中所有唯一帐号的所有组合,以及两个表中所有唯一的商品号。我想要一个条款,将两个表的订货日期限制在一年前之后

到目前为止,我已经:

Select Distinct 
    "Tra.".cus_outnum As "account number", 
    "Tra.".artnum As "article number"
From 
    (table1) "Tra." 
Where 
    "Tra.".invdat >= DATEADD(year, -1, GETDATE())

Union

Select Distinct 
    "Sal.".outnum As "account number", 
    "Sal.".artnum As "article number"
From 
    (table2) "Sal."  
Where 
    "Sal.".deldat>= DATEADD(year, -1, GETDATE())
问题是,它只给了我在同时存在帐户和文章的情况下的组合。我已经厌倦了用with语句来做这件事,但没有成功:

WITH temp1 AS 
(
     Select distinct cus_outnum 
     From table1
), temp2 AS
(
     Select distinct artnum 
     From table1
)
SELECT cus_outnum,artnum
FROM temp1, temp2, table1

蚂蚁的帮助将不胜感激

这给出了预期的结果:

with cte1 as (Select distinct account from test)
,cte2 as (Select distinct article from test)
Select * from cte1 cross join cte2
模式:

Create table test(account int, article int);
Insert into test values(1,1);
Insert into test values(1,2);
Insert into test values(2,3);

您需要
交叉
加入:

select distinct t.Account, t1.Article
from table1 t cross join
     (select distinct article from table) t1;
标记您正在使用的DBMS(即
MySQL
SQL Server
等)。-在ANSI-92 SQL标准中(超过25年前),用正确的ANSI
JOIN
语法替换了老式的逗号分隔表列表样式,不鼓励使用它