Получение значения NULL из Max (Date), если в объединенной таблице нет данных - PullRequest
0 голосов
/ 14 октября 2019

Я хочу видеть последнюю дату утверждения (V.Datum) определенного товара (BauteilID), полученного от отдельного поставщика (m.Lieferanz_FreigabeID). Если в таблице нет даты утверждения, связанной с поставщиком, он должен вернуть NULL. Вместо этого я получаю последнюю дату одобрения других поставщиков того же товара.

Я пытался включить условия IsNULL и IF, но это не сработало.

    Select b.BauteilID, m.Lieferant_FreigabeID, Max(V.Datum) as Datum, m.Freigabe
    From WPLabor.dbo.MapBauteilStahlwerk m
    Join WPLabor.dbo.Bauteilspezifikation b  on b.BauteilID = m.BauteilID
    Join WPLabor.dbo.Verwendungsfreigabe v on v.BauteilID = b.BauteilID
    LEFT Join WPLabor.dbo.Stahlwerkzeugnis s on v.StahlwerkID = s.StahlwerkID And m.Stahlwerk = s. Stahlwerk
    group by b.BauteilID, m.Lieferant_FreigabeID, m.Freigabe

Результатдолжно быть:

  • ID1, Supplier1, Datum1, Freigabe1
  • ID2, Supplier2, NULL, Freigabe2

Вместо этого я получаю:

  • ID1, Supplier1, Datum1, Freigabe1
  • ID2, Supplier2, Datum1, Freigabe2

Помощь будет принята с благодарностью. Заранее спасибо.

1 Ответ

0 голосов
/ 14 октября 2019

Вы, кажется, присоединяетесь только к идентификатору продукта, а не к поставщику и продукту, что приведет к возврату самой последней даты этого продукта независимо от поставщика.

Изменение:

Join WPLabor.dbo.Verwendungsfreigabe v on v.BauteilID = b.BauteilID

К чему-то вроде:

Join WPLabor.dbo.Verwendungsfreigabe v on v.BauteilID = b.BauteilID AND v.SupplierID = b.SupplierID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...