【问题标题】:Display results horizontally水平显示结果
【发布时间】:2013-02-12 05:07:44
【问题描述】:

使用 SQL Server 2005

我想让itemid, deliverydate, remainpurchphysical水平显示。

目前我正在使用FOR XML PATH,这很有效。

当结果是每个 itemid 有多个交货日期时,我希望它们显示得更好

  [ITEMID]  [DELIVERYDATE AND REMAINPURCH]
  -----------------------------------------
  [1234]    [14/14/2014 25 | 15/15/2015 27 | 16/16/2016 28]

最好用 |每个日期之间

这是当前代码

-select itemid, CONVERT(NVARCHAR, deliverydate, 103),remainpurchphysical
--from purchline where purchstatus =1 --and itemid = '00727-s'
SELECT 
    itemid 
    ,deliverydates = STUFF(
                       (SELECT '   ' + CONVERT(NVARCHAR, deliverydate, 103)
                        FROM purchline b 
                        WHERE b.itemid = a.itemid AND purchstatus = 1 
                        ORDER BY deliverydate 
                        FOR XML PATH('')), 1, 1, '')
    ,remainpurchphysical = STUFF(
                              (SELECT '   ' + CAST(CONVERT(Decimal(9,0), remainpurchphysical) AS VARCHAR)
                               FROM purchline b 
                               WHERE b.itemid = a.itemid AND purchstatus = 1  
                               ORDER BY deliverydate
                               FOR XML PATH('')), 1, 1, '')
FROM purchline a
WHERE purchstatus =1
GROUP BY itemid
ORDER BY itemid

【问题讨论】:

标签: sql-server for-xml


【解决方案1】:

类似的,

SELECT
     [ITEMID],
     STUFF(
         (SELECT ' | ' + [date]
          FROM Table1
          WHERE [ITEMID] = a.[ITEMID]
          FOR XML PATH (''))
          , 1, 1, '')  AS DateList
FROM Table1 AS a
GROUP BY [ITEMID]

【讨论】:

  • 您好 JW 我的数量不在同一个字段中,我有 3 个字段。 ItemID、DeliveryDate 和 RemainPurchPhysical
猜你喜欢
  • 2018-06-10
  • 2015-05-04
  • 1970-01-01
  • 2022-01-22
  • 2017-11-27
  • 1970-01-01
  • 2021-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多