SQL从两列和两个表中追加不同的值
我试图创建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 我使用一
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年前),用正确的ANSIJOIN
语法替换了老式的逗号分隔表列表样式,不鼓励使用它