檢查部位費用表結構
CREATE TABLE [dbo].[T_BODYPART](
[BodyPartIdentity] [bigint] NOT NULL,
[BodyPartName] [nvarchar](20) NOT NULL,
[BodyPartMemo] [nvarchar](50) NULL,
[DepartmentIdentity] [bigint] NULL,
[PriceIdentity] [int] NULL,
[DisplayOrder] [int] NULL,
[ReportNode] [nvarchar](255) NULL,
[ModalityTypeIdentity] [int] NULL,
[Protocolcode] [nvarchar](256) NULL,
[BodyPartCount] [int] NULL,
[EXPOSALCOUNT] [int] NULL,
[DisplayOrder2] [int] NULL,
[Price] [numeric](18, 2) NULL,
[BodyPartStoped] [smallint] NULL,
[BodyPartCode] [nvarchar](20) NULL,
CONSTRAINT [PK_T_BODYPART] PRIMARY KEY CLUSTERED
(
[BodyPartIdentity] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
這是病人報告表結構
SELECT TOP 1000 [F_STU_GUID]
,[F_STU_NUM]
,[F_STU_NAME]
,[F_STU_NAME_EN]
,[F_STU_SEX]
,[F_STU_AGE]
,[F_STU_BRITH]
,[F_STU_TELEPHONE]
,[F_STU_ADDRESS]
,[F_STU_PROFESSION]
,[F_STU_COMPANY]
,[F_STU_ID_CARD]
,[F_STU_NATION]
,[F_STU_MARRY]
,[F_STU_HEIGHT]
,[F_STU_WEIGHT]
,[F_STU_FEE_TYPE]
,[F_STU_IN_NUM]
,[F_STU_OUT_NUM]
,[F_STU_BUNK_NUM]
,[F_STU_SICKROOM_NUM]
,[F_STU_SICKROOM_AREA]
,[F_STU_FROM]
,[F_STU_MODEL]
,[F_STU_BODY_PART]
,[F_STU_METHOD]
,[F_STU_RESULT]
,[F_STU_SUSPICION]
,[F_STU_DISEASE]
,[F_STU_REFER_DOCTOR]
,[F_STU_REFER_OFFICE]
,[F_STU_REFER_DATE]
,[F_STU_PERFORM_DOCTOR]
,[F_STU_PERFORM_OFFICE]
,[F_STU_PERFORM_DATE]
,[F_STU_OPT_DOCTOR]
,[F_STU_OPT_DATE]
,[F_STU_WRITER]
,[F_STU_WRITE_DATE]
,[F_STU_OBSERVATION]
,[F_STU_DIAGNOSE]
,[F_STU_ADVICE]
,[F_STU_DETAIL]
FROM [PACS].[dbo].[T_STUDY_REPORT]
資料表[PACS].[dbo].[T_STUDY_REPORT]的檢查部位欄位[F_STU_BODY_PART]可以是多部位的。
比如:腹部+小器官+心臟,
然后我想做個統計,統計每天的每個檢查部位和對應的操作次數和費用,請問怎么實作,請給個思路,貼上代碼更好。
uj5u.com熱心網友回復:
比如: 表1 body_part price小器官 100
心臟 150
頭顱 200
四肢 60
頸動脈 30
橈骨 20
膝關節 50
表2 F_stu_body_part
小器官+心臟
四肢
頭顱+四肢
統計結果:
2020年9月24日統計資料:
小器官 1次 100
心臟 1次 150
四肢 2次 120
頭顱 1次 200
要求:不需要函式,只用單純的SQL陳述句。(介面限制)
uj5u.com熱心網友回復:
不需要函式是指不使用自定義函式嗎?如果使用的是 SQL Server 2016 及更高版本 的話,可以用 STRING_SPLIT 來分隔字串再進行處理。
b1 = 表1, b2 = 表2
大致代碼
--
SELECT value as item, cnt, (cnt * price) total_price FROM
(
SELECT value,COUNT(*) AS CNT
FROM b2
CROSS APPLY STRING_SPLIT(F_stu_body_part, '+')
GROUP BY value
) tb
join b1 on tb.value = b1.body_part
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/120380.html
標籤:基礎類
