ajs*_*iff 4 sql denormalization
我有一个查询,我需要以一种有趣的方式反规范化.
这是来源:
SELECT
BILL_Invoice.Invoice_Number as AccountNumber,
replace(convert(varchar(10), dbo.BILL_Invoice.Invoice_Date,101) ,'/','') as AdmitDate,
BILL_InvoiceCPT.InvoiceCPT_Code AS CPTCode,
InvoiceCPT_FeeAmount as ItemCharge
FROM
dbo.BILL_InvoiceCPT
LEFT JOIN dbo.BILL_Invoice
ON dbo.BILL_InvoiceCPT.Invoice_ID = dbo.BILL_Invoice.Invoice_ID
Run Code Online (Sandbox Code Playgroud)
输出如下所示:
AccountNumber | AdmitDate | CPTCode | ItemCharge
38689 | 02192013 | 99213 | 110.00
38689 | 02192013 | 80053 | 0.00
38689 | 02192013 | 86361 | 0.00
38689 | 02192013 | 85025 | 0.00
38689 | 02192013 | 87536 | 0.00
38689 | 02192013 | 93000 | 25.00
Run Code Online (Sandbox Code Playgroud)
我需要的是:
AccountNumber | AdmitDate | TotalCharges | CPTCodes | ItemCharges
38689 | 02192013 | 135.00 | 99213;80053;86361;85025;87536;93000 | 110.00;0.00;0.00;0.00;0.00;25.00
Run Code Online (Sandbox Code Playgroud)
这是输入第三方软件应用程序所必需的.我不确定如何正确地反规范化这些信息.PIVOT功能会这样做吗?
MySQL有一个就绪函数叫做GROUP_CONCAT!
它看起来像这样:
SELECT
AccountNumber
,AdmitDate
,SUM(TotalCharges)
,GROUP_CONCAT(CPTCode)
,GROUP_CONCAT(ItemCharges)
FROM tbl
WHERE condition
GROUP BY AccountNumber, AdmitDate
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4291 次 |
| 最近记录: |