用sql语句如何将两张表中的一列数据进行比对。

用sql语句如何将两张表中的一列数据进行比对。,第1张

你好!

先获取不重复的ID,即x、y表的不重复并集,观察x、y表结构类似,通过union进行排重即可。

使用第一步获取的数据进行左链接x、y表的扩展表(第3步)。

分别对x、y表进行分组并合计,针对中y表中ID为A的记录出现多次,最后显示为ID为A的盘点数量为2,这样的数据进行处理,以方便最后显示。

通过(库存数-盘点数)得到比对字段值。

SELECT
tID,
IFNULL(t`库存数量`, 0) `库存数量`,
IFNULL(t`盘点数量`, 0) `盘点数量`,
(
IFNULL(t`库存数量`, 0) - IFNULL(t`盘点数量`, 0)
) `比对`
FROM
(
SELECT
aID ID,
p1`库存数量`,
p2`盘点数量`
FROM
(
SELECT
ID
FROM
x
UNION
SELECT
ID
FROM
y
) a
LEFT JOIN (
SELECT
ID,
sum(`库存数量`) `库存数量`
FROM
x
GROUP BY
ID
) p1 ON aid = p1id
LEFT JOIN (
SELECT
ID,
sum(`盘点数量`) `盘点数量`
FROM
y
GROUP BY
ID
) p2 ON aid = p2id
) t
ORDER BY
ID

希望对你有帮助!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13396477.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-28
下一篇 2023-07-28

发表评论

登录后才能评论

评论列表(0条)

保存