如何在T-SQL中显示相同合同的所有名称 [英] How to show all names for identical contract in T-SQL

查看:104
本文介绍了如何在T-SQL中显示相同合同的所有名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样的查询,我给我看了一些很好的结果。

pre $ select
vup.UgovorId,
count(P.Naziv)as BROJNAZIVA
from
[TEST_Ugovori_Prod] .dbo.VezaUgovorPartner as vup
inner join
[TEST_MaticniPodaci2]。[dbo]。[合作伙伴] as p on vup.PartnerId = p.PartnerID
group by
vup.UgovorId

结果是这样的(第一行是vup.UgovorId,第二行是p.Naziv):

  1264 1 
1265 3

但是我想显示所有p.Naziv,当该行有多于一个那vup.UgovorId喜欢字符串,所以我会这样:

  1264马克
1265Jerry,Philip ,Tom


解决方案

我认为这是的问题你正在努力解决?



我不确定您使用的是什么技术,但这至少可以为您提供一些指导。



所以你的代码看起来像这样:

  select 
vup.UgovorId,
substring(

从'TEST_MaticniPodaci2'。[dbo]。 .PartnerID
ORDER BY P.Naziv
对于XML PATH('')
),2,1000)[名称]

[TEST_Ugovori_Prod] .dbo。 VezaUgovorPartner as vup
group by vup.UgovorId


I have query like this, and i shows me sort of good results

select 
    vup.UgovorId, 
    count(P.Naziv) as BROJNAZIVA 
from 
    [TEST_Ugovori_Prod].dbo.VezaUgovorPartner as vup 
inner join 
    [TEST_MaticniPodaci2].[dbo].[Partner] as p on vup.PartnerId = p.PartnerID 
group by 
    vup.UgovorId

Results are like this (first row is vup.UgovorId, second is p.Naziv):

1264 1
1265 3

But I want to show all p.Naziv when that row has more then one for that vup.UgovorId like string so I would be like this:

1264 "Mark"
1265 "Jerry, Philip, Tom"

解决方案

I think this is the issue you are trying to solve?

I am not sure what technology you are using, but this may at least provide you some guidance.

So your code would look something like this:

select 
    vup.UgovorId, 
    substring(
    (
        Select ','+ P.Naziv AS [text()]
        From [TEST_MaticniPodaci2].[dbo].[Partner] as p
        Where vup.PartnerId = p.PartnerID
        ORDER BY P.Naziv
        For XML PATH ('')
    ), 2, 1000) [Names]
from 
    [TEST_Ugovori_Prod].dbo.VezaUgovorPartner as vup
group by vup.UgovorId

这篇关于如何在T-SQL中显示相同合同的所有名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆