У меня есть таблица с полями:
| Accompanying measures (bool) | Category (String) | Instrument (String) |
Поскольку дизайн приложения не предназначался для их замены, я изменил таблицу Instrument
на поле ValidUntil
(тип даты)у него есть либо дата, когда он устарел, либо NULL
, если он все еще действителен.
Представление отображает смесь старых и новых данных. Старые данные могут содержать Instruments
, которые были признаны устаревшими, тогда как новые данные не будут.
Если я отображаю только новые инструменты ValidUntil IS NULL
, я ломаю страницу, потому что есть выбранные Accompanying measures
, которые не могут быть отображены, потому чтоони не извлекаются из базы данных.
Tl; др
Редактировать: Как я могу выбрать все ValidUntil IS NULL
И все записи, где ValidUntil != NULL, but HasBeenSelectedAsAccompanyingMeasure
правда.
SELECT
a.AccompanyingMeasureID, a.InstrumentID, a.TaskID,
a.HasBeenSelectedAsAccompanyingMeasure, a.CategoryID
, i.Name AS InstrumentName, ic.Name AS CategoryName
FROM
wc_AccompanyingMeasures AS a
INNER JOIN
wc_Instruments AS i ON a.InstrumentID = i.ID
INNER JOIN
wc_InstrumentCategories AS ic ON i.CategoryID = ic.ID
WHERE
(a.TaskID = @TaskID)
// AND for TaskID all rows with HasBeenSelectedAsAccompanyingMeasure = 1
AND (i.ValidUntil IS NULL)