2016-04-11 1 views
-1

Ich habe eine Tabelle mit Patienten, ihre Dienste, Datum der Dienstleistungen, ect ... Wenn ein Patient 6+ hat Einmalige Dienste in einem Monat, dann in meiner Select-Anweisung Ich möchte eine neue Spalte mit dem Wort "Full Month" drin haben.Zählen, wenn es 6 oder mehr eindeutige Vorkommen in einer Spalte gibt dann in einer neuen Spalte eine Zeichenfolge, die es identifiziert

+0

zeigen wir kein Code- sind Schreibservice. Wir sind hier, um Ihnen zu helfen, wenn Sie nicht weiterkommen und Ihre Arbeit nicht für Sie erledigen. Was hast du getan? – Siyual

Antwort

-1

Ich nehme an, dass Sie eine GROUP BY Abfrage auf Ihre spezifischen Patientenkennung nutzen könnten alle Ergebnisse für einen bestimmten Patienten über einen Zeitraum zu erhalten, wie unten zu sehen:

SELECT PatientId, 
     CASE WHEN COUNT(ServiceId) > 5 THEN 1 ELSE 0 END AS FullMonth 
    FROM Patients 
    WHERE ServiceDate BETWEEN @Start AND @End 
GROUP BY PatientId, ServiceId 

können Sie see an overly simplified example of this here.

0

Sie benötigen eine einfache Gruppe von

Daten einrichten

create table #patient 
(
    patientId int, 
    serviceId int, 
    dt date 
) 

insert into #patient values 
(1, 1, '2016-01-02'), 
(1, 1, '2016-01-05'), 
(1, 1, '2016-01-07'), 
(1, 1, '2016-01-12'), 
(1, 1, '2016-01-16'), 
(1, 1, '2016-01-20'), 
(1, 1, '2016-01-25'), 
(1, 2, '2016-01-02'), 
(1, 2, '2016-01-02'), 
(2, 1, '2016-01-02'), 
(2, 1, '2016-01-02') 

select patientId, serviceId, count(*) AS Cnt 
, case 
    when count(*) >= 6 then 'Full Month' 
    else 'Not Full Month' 
    end AS YourNewColumn 
from #patient 
group by patientId, serviceId, month(dt) 

das Ergebnis Get It

+-----------+-----------+-----+----------------+ 
| patientId | serviceId | Cnt | YourNewColumn | 
+-----------+-----------+-----+----------------+ 
|   1 |   1 | 7 | Full Month  | 
|   1 |   2 | 2 | Not Full Month | 
|   2 |   1 | 2 | Not Full Month | 
+-----------+-----------+-----+----------------+ 
+0

Aus welchem ​​Grund wird eine korrekte und gut erklärte Antwort nach unten stimmen? – FLICKER

+0

Es ist wahrscheinlich eine der üblichen "Ich mag diese Frage nicht oder Leute, die es beantworten" downvotes; Also hier ist ein upvote um das auszugleichen :) –

+0

Danke Mann !! Wer auch immer er war, stimmte für Q und beide Antworten ab :) – FLICKER

Verwandte Themen