2017-06-19 147 views
0

我有3个表格。我使用UNION ALL统一了其中两个,但我无法统一第三个,因为只有一个共同的字段"receipt"使用UNION ALL和INNER JOIN

我希望得到像输出:

costumerid/ amount/receipt/saledate /cost

我的代码现在的问题是:

SELECT t1.costumerid, t1.amount, t1.receipt, t1.saledate 
FROM t1 
WHERE t1.amount>'100' AND t1.saledate<Date()-180 
UNION ALL 
SELECT t2.costumerid, t2.amount, t2.receipt, t2.saledate 
FROM t2 
WHERE t2.amount>'100' AND t2.saledate<Date()-180 

任何帮助吗?提前致谢!

+0

提供表格结构和样本数据。 – user75ponic

回答

0

您可以为输出列创建别名。

SELECT t1.costumerid, t1.amount, t1.receipt, t1.saledate FROM t1 WHERE t1.amount>'100' AND t1.saledate<Date()-180 UNION ALL SELECT t2.costumerid, t2.amount, t2.receipt, t2.saledate FROM t2 WHERE t2.amount>'100' AND t2.saledate<Date()-180 UNION ALL select null as 'costumerid',null as 'amount' t3.receipt , null as 'saledate' from t3 

我不知道你想在哪个表中找到列成本,但你只需要遵循逻辑。

+0

“成本”栏位于t3。 –