Спасибо всем, кто помог мне с моим последним вопросом. Это похожий вопрос, но теперь у меня есть лучшее представление о том, чего я хочу. Я снова использую MS SQL Server 2008 и пытаюсь выяснить запрос, который немного выходит за рамки моего опыта работы с SQL.
Сейчас у меня есть следующий простой запрос
SELECT pl.val, pl.txt_val, pl.id
FROM dm.labs pl
WHERE pl.lab_nm = 'CK (CPK)'
AND pl.val < 999999;
AND pl.val IS NOT NULL
ORDER BY pl.val;
В этой таблице каждая строка соответствует результатам лабораторного исследования пациента. Проблема в том, что для некоторых пациентов есть строки, которые на самом деле являются несколькими копиями одного и того же лабораторного чтения. Существует столбец pl.lab_filed_dts
(тип данных datetime), в котором указана дата взятия лаборатории.
Что я хочу сделать, это:
Редактировать: если две (или более) строки имеют одинаковые id
, одинаковые val
и одинаковые lab_filed_dts
, независимо от их значений в любом другом столбце, я хочу вернуть val
, txt_val
и id
только из одной строки (не важно, какая из них).
Редактировать: , если две строки имеют одинаковые id
, одинаковые val
и ту же часть дня (но не обязательно время), равную lab_filed_dts
И часть времени lab_filed_dts
для одного из них полночь, я хочу вернуть val
, txt_val
и id
из строки, у которой lab_filed_dts
время не полночь.
Еще раз спасибо за помощь всем!