首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用键连接两个表

使用键连接两个表
EN

Stack Overflow用户
提问于 2019-10-18 06:00:52
回答 1查看 23关注 0票数 0

我能够连接这两个表,并获得名为TextLine的字段。但是Textline对于一个键有多个值,想要将它们分组到每个键的一行中,我已经可以使用连接匹配这两个表。但我有多行由于文本行,想要有文本行成一个使用用于连接两个表的关键字多行

代码语言:javascript
运行
复制
    <pre>
         SELECT TOP (100) PERCENT 
          dbo.POHeader.PoNo
           , dbo.POHeader.ShipDate
            , dbo.POHeader.Style, dbo.POHeader.StyleDesc
              ,dbo.POHeader.Quota,
        (CONCAT(RTRIM(LTRIM(dbo.POHeader.QuotaName)),RTRIM(LTRIM(dbo.POHeader.QuotaName2)),RTRIM(LTRIM(dbo.POHeader.QuotaName3)),RTRIM(LTRIM(dbo.POHeader.QuotaName4)),RTRIM(LTRIM(dbo.POHeader.QuotaName5)),RTRIM(LTRIM(dbo.POHeader.QuotaName6)))) as QuotaName
        , dbo.POHeader.VendorName
        , dbo.POHeader.CountryofOrigin
        , dbo.[PODetail-TotalPcs-TotalCost].TotalPcs
        , dbo.POHeader.HTS
        , dbo.poheader.DC
        ,dbo.POHeader.DeliveryDate
        , dbo.[POText-T].TextLine 

        FROM dbo.POHeader INNER JOIN dbo.[PODetail-TotalPcs-TotalCost] ON dbo.POHeader.PoNo = dbo.[PODetail-TotalPcs-TotalCost].PoNo

        LEFT JOIN dbo.[POText-T] ON dbo.POHeader.PoNo = dbo.[POText-T].PoNo 

        WHERE  dbo.POHeader.DeliveryDate >= '11/01/19' AND dbo.POHeader.DeliveryDate <= '11/30/19' AND dbo.POHeader.DC IN ('W2WM','W2WJ')'</pre>

###Current table:###
#PoNO | SHIPDATE | TEXTLine#
##548756 | 3/4/2018 | BOYS##
##548756 | 3/4/2018 |  SHOES##

#Required ans:#
##PoNO | SHIPDATE |TextLine##
##548756 |3/4/2018 | Boys Shoes##
EN

回答 1

Stack Overflow用户

发布于 2019-10-18 07:27:41

如果要在sql server中查找列中的行,则有一种方法是使用XML。

代码语言:javascript
运行
复制
WITH Current_table AS(
SELECT 548756 PoNO , CAST('3/4/2018' AS datetime) SHIPDATE ,'BOYS' TEXTLine union all
SELECT 548756  , CAST('3/4/2018' AS datetime),'SHOES'  union all
SELECT 548756  , CAST('3/5/2018' AS datetime),'SHOES'
)
 SELECT PoNO
        ,SHIPDATE
        ,STUFF((SELECT ' '+TEXTLine 
                FROM Current_table a 
                WHERE a.SHIPDATE=b.SHIPDATE 
                AND a.PoNO=b.PoNO FOR XML PATH(''),TYPE).value('.','NVARCHAR(MAX)'),1,1,'') TEXTLine
 FROM Current_table b
 GROUP BY SHIPDATE,PoNO

输出:

代码语言:javascript
运行
复制
PoNO    SHIPDATE                TEXTLine
548756  2018-03-04 00:00:00.000 BOYS SHOES
548756  2018-03-05 00:00:00.000 SHOES
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58441284

复制
相关文章

相似问题

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