У меня две таблицы. indRailType
содержит список имен в паре с идентификационным значением, которое я использую в других таблицах, чтобы указать тип рельса. WO_BreakerRail
содержит столбец даты и столбец рельсового кода, соответствующий тому же коду в indRailType
и некоторым другим данным. Для каждой операции на каждом типе рельса для каждой даты есть строка в WO_BreakerRail
. Таким образом, у меня могло бы быть 3 строки, датированные 3/19/2010
, каждая строка указывает другой код рельса и что произошло.
Когда я использую следующий LEFT OUTER JOIN
, я получаю таблицу со всеми типами рельсов с нулями в строках, где ничего не произошло на 19-м. Теперь это работает, потому что у меня есть только одна дата, представленная в моей таблице WO_BreakerRail
прямо сейчас, 19-го. Когда я добавлю несколько строк с разными датами, все будет схоже.
Это мой оператор SQL, который прямо сейчас дает мне именно те результаты, которые я хочу:
SELECT WO_BreakerRail.ID, indRailType.RailType, WO_BreakerRail.CreatedPieces,
WO_BreakerRail.OutsideSource, WO_BreakerRail.Charged,
WO_BreakerRail.Rejected, WO_BreakerRail.RejectedToCrop
FROM indRailType
LEFT OUTER JOIN WO_BreakerRail
ON indRailType.RailCode = WO_BreakerRail.RailCode
Теперь, когда я добавляю в предложение WHERE WO_BreakerRail.Date = @Date
, я теряю все строки в JOIN
, которые ничего не произошло. Я не хочу этого. От чтения это звучит как FULL OUTER JOIN
- это то, что я хочу, но SQL Server Compact Edition не поддерживает FULL OUTER JOIN
s. Есть ли способ обойти это, или я ищу что-то еще полностью?