У меня есть перекрестный запрос с несколькими интересующими атрибутами.В этом запросе наличие определенного атрибута да или нет (1 = да 0 = нет).Прямо сейчас, если у человека есть два атрибута, они представлены двумя строками в наборе данных.И если у них есть три проблемы, то они представлены тремя рядами.Мне нужен способ отображения нескольких атрибутов в одной строке.Например, если у них диабет и табак, в одном ряду под этим столбцом будет стоять «1», а не прямо сейчас, где есть 1, за которым следуют все нули для диабета.И строка «табак» имеет 0 в каждом столбце, кроме табака (где это единица).
(Нажмите, чтобы увеличить)
- это экранная крышка того, как выглядит вывод.И мне нужен только один ряд на пациента, независимо от того, сколько у них проблем.
ниже мой sql.
TRANSFORM IIf([tblComorbidity.comorbidityexplanation]=[tblComorbidity.comorbidityexplanation],1,0) AS Morbidity
SELECT
Person.PersonID,
Person.Age,
tblKentuckyCounties.Metro,
tblKentuckyCounties.Appalachian,
Person.asiaAdmit,
Person.Sex
FROM tblKentuckyCounties
INNER JOIN (tblComorbidity
INNER JOIN (Person
INNER JOIN tblComorbidityPerson ON Person.PersonID = tblComorbidityPerson.personID
) ON tblComorbidity.ID = tblComorbidityPerson.comorbidityFK
) ON tblKentuckyCounties.ID = Person.County
WHERE (((tblComorbidity.comorbidityexplanation)="anxiety and depression"
Or (tblComorbidity.comorbidityexplanation)="heart"
Or (tblComorbidity.comorbidityexplanation)="respiratory"
Or (tblComorbidity.comorbidityexplanation)="uti"
Or (tblComorbidity.comorbidityexplanation)="diabetes"
Or (tblComorbidity.comorbidityexplanation)="hypertension"
Or (tblComorbidity.comorbidityexplanation)="tobacco"))
GROUP BY
Person.PersonID,
Person.Age,
tblKentuckyCounties.Metro,
tblKentuckyCounties.Appalachian,
Person.asiaAdmit,
Person.Sex,
tblKentuckyCounties.Appalachian,
tblKentuckyCounties.Metro,
tblComorbidity.comorbidityexplanation
PIVOT tblComorbidity.comorbidityexplanation;