从两个表中选择一个表
我不知道它是否可行。如果可能的话,请帮我解决这个问题。从两个表中选择一个表
我有两个表,表1 和表2
Table1 Table2
CashReceivedFrom Amount CashPaidOutto Amount
x 100 A 300
Y 200 B 400
z 250
xy 300
有Table 1和Table之间没有关系。我想执行一个查询,使我看起来就像这样:
输出表
CashReceivedFrom Amount CashPaidOutto Amount
x 100 A 300
Y 200 B 400
z 250
xy 300
我想用它的日常现金reprt
这给你你想要的。
CREATE TABLE #TMP1 (ID INT,Amnt INT)
CREATE TABLE #TMP2 (ID INT,Amnt INT)
INSERT INTO #TMP1 VALUES
(1,100)
,(2,130)
,(3,10)
,(4,160)
INSERT INTO #TMP2 VALUES
(76,1024)
,(78,134)
;WITH cteA
AS
(
SELECT *
,ROW_NUMBER() OVER(ORDER BY ID) AS Pos
FROM #TMP1
)
,cteB
AS
(
SELECT *
,ROW_NUMBER() OVER(ORDER BY ID) AS Pos
FROM #TMP2
)
SELECT
A.ID
,A.Amnt
,B.ID
,B.Amnt
FROM
cteA A
LEFT JOIN cteB B
ON
A.Pos = B.Pos
thnx alotttt @pacreely它解决了我的问题.thnx很多。 :) –
在我的解决方案中,我按ID排序。我建议您在解决方案中将其替换为聚簇索引中的关键字段。它会提高性能。 – pacreely
再次感谢我将一直铭记在心! –
试试下面的语句。我不知道你为什么需要空数据。但下面的代码可能会帮助你。
SELECT * FROM (
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT 1))
AS SNO, CASHRECIEVEDFROM, AMOUNT FROM TABLE1
) AS A
FULL OUTER JOIN
SELECT * FROM (
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT 1))
AS SNO, CASHPAIDTO, AMOUNT FROM TABLE2
) AS B ON A.SNO = B.SNO
为什么?你想用这个做什么? – Igor
只需要在UI上进行格式化,为什么你需要有'x'行与不相关的'y'行和你的数据库中的大量空数据? – Kritner
我有一种情况,我想显示每日现金流量。 **收到的现金**和**支付的现金**我有这两张桌子第一张桌子我存入现金收入和第二张桌子现金支付。所以我想执行一个查询,以便我的输出看起来像这样: –