ITPUB论坛-中国专业的IT技术社区

 找回密码
 注册
查看: 232|回复: 0

[讨论] 联表查询的问题

[复制链接]
论坛徽章:
3
祖国60周年纪念徽章
日期:2009-10-09 08:28:00ITPUB十周年纪念徽章
日期:2011-11-01 16:24:512013年新春福章
日期:2013-02-25 14:51:24
跳转到指定楼层
1#
发表于 2018-7-11 22:10 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
有表TMA、TMB、TMC,均有6个字段,格式均为为smallint,测试数据时共列出10个条件,但发现存在问题,请各位大虾指点一下问题出在哪里。

GO
DELETE TMA
INSERT INTO TMA SELECT 10,40,95,121,156,208
DELETE TMB  
INSERT INTO TMB SELECT 10,40,95,121,156,208
DROP TABLE TMC
Go
  
SELECT DISTINCT
    t2.a,
    t2.b,
    t2.c,
    t2.d,
    t2.e,
    t2.f,
    t2.rn  INTO TMC
FROM
(
    SELECT *
    FROM TMA A
        CROSS APPLY
    (
        VALUES  
           
            (A.a - A.b - A.f),
            (A.a - A.c - A.d),
            (A.a - A.c - A.e),
            (A.b - A.c - A.d),
            (A.c - A.d - A.e),
            (A.c - A.d - A.f),
            (A.a + A.b + A.e),
            (A.a + A.b + A.f),
            (A.a + A.c + A.f),
            (A.b + A.c + A.f)

            
    ) t (rn)
) t1
    JOIN
    (
        SELECT *
        FROM TMB B
            CROSS APPLY
        (
            VALUES
            
            (B.a - B.b - B.f),
            (B.a - B.c - B.d),
            (B.a - B.c - B.e),
            (B.b - B.c - B.d),
            (B.c - B.d - B.e),
            (B.c - B.d - B.f),
            (B.a + B.b + B.e),
            (B.a + B.b + B.f),
            (B.a + B.c + B.f),
            (B.b + B.c + B.f)

        ) t (rn)
    ) t2
        ON t2.rn = t1.rn;

我想象的结果是:TMA和TMB中都只有一条完全相同的记录,则两个表任意位置的和差都是相同的,即:给出了10个要求和差相等的条件,则导入TMC表中的记录会是10次,但我测试的结果却不是这样的。

如上,TMA和TMB中的记录都是10,40,95,121,156,208 时,运行完上面的语句再运行
SELECT a,b,c,d,e,f,COUNT(*) FROM TMC GROUP BY a,b,c,d,e,f ORDER BY COUNT(*)
TMC返回的记录是10条;

TMA和TMB中的记录都是2, 4, 6,  8, 10, 12  时,运行完上面的语句再运行
SELECT a,b,c,d,e,f,COUNT(*) FROM TMC GROUP BY a,b,c,d,e,f ORDER BY COUNT(*)
TMC返回的记录是7条;

TMA和TMB中的记录都是 2, 3, 6, 10, 35, 40 时,运行完上面的语句再运行
SELECT a,b,c,d,e,f,COUNT(*) FROM TMC GROUP BY a,b,c,d,e,f ORDER BY COUNT(*)
TMC返回的记录是9条。


请大虾们指点一下是怎么回事。
打赏鼓励一下!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表
http://www.vxiaotou.com