私は2つのテーブル、すなわちMeasurement and Clinicalを持っています。Sql server異なる条件に基づいて同じテーブルから結果を選択するクエリ
問合せ:
ClientID | InputValue of(188) | InputValue of(198)| InputValue of(82)
----------------------------------------------------------------------
7 | Yes | Yes | Referred to Comm Pres
6 | Yes | null | null
5 | yes | yes | null
注:我々は唯一の入力値 "はい" と82値は唯一でなければなりません 'が188198を考慮する必要があり、次のように私はなりたい
CREATE TABLE Measurement
(
[MeasurementID] [int] IDENTITY(1,1) NOT NULL,
[CHID] [int] NOT NULL,
[MeasureID] [int] NOT NULL,
[InputValue] [varchar](80) NOT NULL,
[MeasurementDate] [datetime] NOT NULL
)
CREATE TABLE Clinical
(
[ClinicalID] [int] IDENTITY(1,1) NOT NULL,
[CHID] [int],
[ClientID] [int] NOT NULL
)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(111,118,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(112,198,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(112,82,'Referred to Comm Pres',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(113,118,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(114,198,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(114,82,'Referred to Comm Pres',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(115,118,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(115,198,'No',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(115,82,'Referred to Comm Pres',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(116,118,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(116,198,'No',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(116,82,'Univeristy',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(117,188,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(117,198,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(117,82,'Univeristy',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(200,188,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(201,198,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(202,82,'Univeristy',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(203,188,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(203,198,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(205,188,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(203,5000,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(203,500,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(205,1555,'NO',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(207,188,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(208,198,'Yes',19-10-2016)
insert into Measurement(CHID,MeasureID,InputValue,MeasurementDate) values(209,82,'Referred to Comm Pres',19-10-2016)
insert into Clinical(CHID,ClientID) values(111,1)
insert into Clinical(CHID,ClientID) values(112,1)
insert into Clinical(CHID,ClientID) values(113,2)
insert into Clinical(CHID,ClientID) values(114,2)
insert into Clinical(CHID,ClientID) values(115,2)
insert into Clinical(CHID,ClientID) values(116,3)
insert into Clinical(CHID,ClientID) values(117,4)
insert into Clinical(CHID,ClientID) values(200,4)
insert into Clinical(CHID,ClientID) values(201,4)
insert into Clinical(CHID,ClientID) values(202,4)
insert into Clinical(CHID,ClientID) values(203,5)
insert into Clinical(CHID,ClientID) values(205,6)
insert into Clinical(CHID,ClientID) values(207,7)
insert into Clinical(CHID,ClientID) values(208,7)
insert into Clinical(CHID,ClientID) values(209,7)
Comm Presを参照してください。
誰でも私にこれを助けてください。あなたは、私は以下に示すように、次の
with Table1 AS
(
select
CH.ClientID, CM.*
from
Measurement CM
inner join
Clinical CH ON CM.CHID = CH.CHID
where
MeasureID in (188, 198, 82)
)
select
T1.ClientID, T1.MeasurementID, T1.MeasureID, T1.CHID,
T1.InputValue, T2.InputValue, T3.InputValue, T1.MeasurementDate
from
Table1 T1
join
Table1 T2 on (T1.ClientID = T2.ClientID)
join
Table1 T3 on (T2.ClientID = T3.ClientID)
where
T2.MeasureID = 198
and lower(T2.InputValue) = 'yes'
and t3.MeasureID = 82
and T1.MeasureID = 188
and lower(T1.InputValue) = 'yes'
and T1.ClientID not in (select ClientID
from Table1
where MeasureID = 82
and InputValue not in ('Referred to Comm Pres'))
group by
T1.ClientID, T1.MeasurementID, T1.MeasureID, T1.CHID,
T1.InputValue, T2.InputValue, T3.InputValue, T1.MeasurementDate
order by
T1.MeasurementDate, T1.MeasurementID, T1.CHID, T1.MeasureID
あなたがこれまでに試したものを投稿してください.. – StackUser
私は私が=上記の答えは多少働いているが、それはまた、82の値を持つクライアントを示している、これまで –