2015-04-30 70 views
0

我的方案是如下:从逗号分隔值生成报告的存储过程?

我有一个配置文件表如下

ProfileID int 
FirstName varchar(50) 
LastName varchar(100) 
DateOfBirthDay varchar(100) 
DateOfBirthMonth varchar(100) 
DateOfBirthYear varchar(100) 
Gender varchar(100) 
Address1 varchar(100) 
Address2 varchar(100) 
City varchar(100) 
Province varchar(100) 
PostalCode varchar(100) 
PhoneNumber varchar(100) 
WorkNumber varchar(100) 
CellNumber varchar(100) 
EmailAddress varchar(100) 

我也有表来存储下面的每个配置文件中的不同条件:

ProfileId int 
CurrentWeight float 
HeightUnit varchar(50) 
CurrentHeight float 
Occupation varchar(50) 
Conditions varchar(MAX) 
Medications varchar(MAX) 
Is_Pregnant bit 
Diseases varchar(MAX) 
Allergy_Food varchar(MAX) 
Supplements_Taken varchar(MAX) 
Programs_Attended varchar(MAX) 
Knowledge_Source varchar(MAX) 
DateOfPhysicalExam datetime 
MoreInformation varchar(MAX) 

数据存储对于本表中的每条记录如下:(样本)

False 10,12, 119, 138, 145,147,149, 

它只是将条件ID的ID存储为逗号分隔值。这里是存储与如下每个ID关联的值主表:

5 1 Conditions Organ transplant 
    6 1 Conditions Recent heart attack (within the last 6 months) A 
    7 1 Conditions Recent stroke (within the last 6 months) A 
    8 2 Medications Adderral 
    9 2 Medications Aptivus Aptivus A 
    10 2 Medications Atripla Atripla A 
    11 2 Medications Chloramphenicol 
    12 2 Medications Coumadin  
    13 2 Medications Crixivan  
................................. 

现在我需要使用存储过程来提取每个客户的情况下,药物等个人资料一起创建报表....在格式如下:

id Name Age Occupation Diseases Medications Is_Preg Supplements_Taken 

10001 TestName 59 Office Asthma, Blood Pressure Heparin, Aptivus, Indocin False 

我该怎么办?

+0

你在问什么? – Andrew

回答

1

也许这T-SQL split string函数将为你工作。

您可以加入返回到条件/药物查找表的表格。