【问题标题】:SQL (Access) returning multiple records as one rowSQL(Access)将多条记录作为一行返回
【发布时间】:2017-03-06 22:44:03
【问题描述】:
ClaimNo, Diag1, Diag2, Diag3, Diag4, CPT Code
   1     v912                        97729
   1     v912   762.3                81029
   1     v912   762.3  333.9         15321 
   1     v912   762.3  333.9  213.0  71100

是否可以编写一个将上述信息作为一行返回的查询?例如:

ClaimNo, Diag1, Diag2, Diag3, Diag4, CPT Codes
   1     v912   762.3  333.9  213.0  97729, 81029, 15321, 71100

这可能稍微简单一些,但是将不同 CPT 代码捕获为一条记录的代码呢:

ClaimNo, CPT Codes
   1     97729, 81029, 15321, 71100

为此,我希望看到针对 Microsoft SQL Server 2012 的 Microsoft Access 语法。我将处理许多记录和更大的索赔数量。索赔的 CPT 代码可能比所列示例多或少。

是否也可以使用嵌入的 INDEX 和 MATCH 函数在 Excel 中执行类似的操作?

感谢您的宝贵时间。

【问题讨论】:

标签: sql sql-server-2012 ms-access-2010 excel-2010


【解决方案1】:
BEGIN TRAN
CREATE TABLE #Temp(ClaimNo VARCHAR(100),Diag1 VARCHAR(100),Diag2 VARCHAR(100),Diag3 VARCHAR(100),Diag4 VARCHAR(100),CPTCode VARCHAR(100))

INSERT INTO #Temp(ClaimNo ,Diag1,Diag2,Diag3,Diag4,CPTCode)
SELECT '1','v912','','','','97729' UNION ALL
SELECT '1','v912','762.3','','','81029' UNION ALL
SELECT '1','v912','762.3','333.9','','15321' UNION ALL
SELECT '1','v912','762.3','333.9','213.0','71100' 

SELECT ClaimNo , STUFF((SELECT ',' + CPTCode FROM #Temp FOR XML PATH('')),1,1,'')
FROM #Temp
GROUP BY ClaimNo


ROLLBACK TRAN

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多