首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server :将表连接到自身?

SQL Server :将表连接到自身?
EN

Stack Overflow用户
提问于 2020-03-13 14:34:00
回答 1查看 60关注 0票数 0

我在连接一个表本身时遇到了问题,或者实际上是在连接一个已经涉及这个表的复杂查询时遇到了问题。让我来解释一下我到底是什么意思。

目前,我有以下选择:

代码语言:javascript
复制
SELECT 
    t.maticna, t.clientNo, t.letoZr, t.letoZrChr, t.sort, 
    t.tipOcene, t.bonitetniModel, t.datumOtvoritve, t.DatumKLJ,
    t.ocm1solor_LT, t.ocm1solo_LT, t.ocm1solor_ST, t.ocm1solo_ST 
FROM 
    (SELECT 
         a.maticna, a.clientNo,  a.letoZr, a.letoZrChr, a.sort, 
         a.tipOcene, a.bonitetniModel, a.datumOtvoritve,
         im.PKModul1_LT as ocm1solor_LT, im.PDModul1_LT*100 as ocm1solo_LT, 
         im.PKModul1_ST as ocm1solor_ST, im.PDModul1_ST*100 as ocm1solo_ST, 
         im.DatumKLJ,
         ROW_NUMBER() OVER (PARTITION BY a.letoZrChr ORDER BY datumOtvoritve DESC, im.DatumKLJ DESC) AS rn
     FROM 
         #osnovna a 
     LEFT JOIN 
         airb.bm.IzhodModeli im ON a.clientNo = im.KomitentID 
                                AND im.ReferencniDatum = a.datumOtvoritve 
                                AND a.tipocene = im.tipocene) t
WHERE 
    t.rn = 1
ORDER BY 
    t.DatumKLJ DESC

它所做的是,返回以下5行:

代码语言:javascript
复制
maticna clientNo letoZr letoZrChr sort  tipOcene    bonitetniModel  datumOtvoritve  DatumKLJ    ocm1solor_LT    ocm1solo_LT ocm1solor_ST    ocm1solo_ST
5046432 975145  2019    ML2019    4       2              GD          2019-06-30      43900             4    0,868   3   0,565
5046432 975145  2018    ZR2018    3       0              GD          2018-12-31      43900             8    34,425  8   24,269
5046432 975145  2017    ZR2017    2       0              GD          2017-12-31      43612             5    2,622   4   1,173
5046432 975145  2016    ZR2016    1       0              GD          2016-12-31      43355             4    1,405   3   0,588
5046432 975145  2019    PL2019    5       3              GD          2019-12-31                      NULL   NULL    NULL    NULL    NULL

现在,长话短说,我希望select还显示表im的最后4列(ocm1solor_LT、ocm1solo_LT、ocm1solor_ST、ocm1solo_ST ),其中:

如果tipOcene当前为2,那么我想将上面写入的4列添加到该行中,其中tipOcene=6、DatumKLJ、DatumOtvoritve和clientNo是相同的。

如果tipOcene当前为0,那么我想向该行添加相同的4列,但为tipOcene=1。

如果tipOcene是3,那么我想向该行添加相同的4列,但使用tipOcene=7。

我遇到的问题是,无论我如何尝试加入"im“表,我最终都会得到更多的结果。因此,如果任何人有任何建议如何进行连接,它不会添加任何行,但它只会将上面写的4列添加到当前行的末尾,除了一个不同的tipOcene,将非常感谢。

我希望我想要的东西的说明至少是清楚的笑,如果没有,请随时询问,我很乐意解释,因为我真的很挣扎…

EN

回答 1

Stack Overflow用户

发布于 2020-03-13 17:36:56

谢谢Keith,这是一个左联用案例,我不确定我是如何错过了之前的大笑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60665845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档