У меня есть две таблицы базы данных для документирования процесса заживления ран.Они объединяются в столбец wound_id-Column следующим образом:
Так что для одной раны я могу создать много прогрессов, чтобы показать ее заживление.Это работает нормально.
Вот код для таблиц:
Таблица wound_details:
CREATE TABLE [dbo].[epadoc_mod_wound_details] (
[wound_id] INT IDENTITY (1, 1) NOT NULL,
[wound_type] VARCHAR (500) NULL,
[wound_description] VARCHAR (500) NULL,
[decuGrade] INT NULL,
[wound_comments] VARCHAR (500) NULL,
[wound_timeReal] DATETIME NULL,
[wound_timeGiven] DATETIME NULL,
[casenumber] INT NULL,
[username] VARCHAR (50) NULL,
[infectionstate] VARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([wound_id] ASC)
);
Таблица wound_progress:
CREATE TABLE [dbo].[epadoc_mod_wound_progress] (
[progress_id] INT IDENTITY (1, 1) NOT NULL,
[wound_length] INT NULL,
[wound_width] INT NULL,
[wound_depth] INT NULL,
[wound_surrounding] VARCHAR (500) NULL,
[wound_consistence] VARCHAR (500) NULL,
[wound_state] VARCHAR (200) NULL,
[wound_painscale] INT NULL,
[wound_itch] INT NULL,
[wound_id] INT NULL,
PRIMARY KEY CLUSTERED ([progress_id] ASC),
CONSTRAINT [FK_epadoc_mod_wound_progress_fk] FOREIGN KEY ([wound_id]) REFERENCES [dbo].[epadoc_mod_wound_details] ([wound_id]) ON DELETE CASCADE
);
ТогдаЯ написал SELECT-Query, чтобы показать все раны для конкретного номера случая, которые задокументированы для пациента:
SELECT DISTINCT
dbo.epadoc_mod_wound_details.wound_id, dbo.epadoc_mod_wound_details.casenumber, dbo.epadoc_mod_wound_details.wound_type, dbo.epadoc_mod_wound_progress.progress_id, dbo.epadoc_mod_wound_details.wound_comments, dbo.epadoc_mod_wound_details.wound_timeReal, dbo.epadoc_mod_wound_details.username
FROM dbo.epadoc_mod_wound_details LEFT JOIN
dbo.epadoc_mod_wound_progress
ON dbo.epadoc_mod_wound_details.wound_id = dbo.epadoc_mod_wound_progress.wound_id
WHERE dbo.epadoc_mod_wound_details.casenumber = @casenr;
Это работает нормально, но проблема в том, что ВСЕ прогрессирование раны показывается в GridView,Вот пример, чтобы вы могли понять, что я имею в виду:
Что я хочу сделать, это просто показать последние успехи одной раны, поэтому дляВ приведенном выше примере просто показана последняя запись с progressID 65:
33 65 1111111 Dekubitus
34 .. ....... .........
Подход SELECT DISTINCT не сработал, и я также пытался использовать MAX (progressID), но мне всегда кажется, что получаются ошибки.Я думаю, что я должен сделать что-то с ORDER BY или вторым SELECT-Query перед JOIN.
Спасибо за любой совет!