2016-07-04 4 views
-1

Я использовал DATEDIFF, чтобы различать, когда была создана первая ставка единицы, а дата проводки - когда была отправлена ​​первая транзакция этого элемента. У меня есть результат, который мне нужен, однако функция DateDiff дает мне NULL значения, начиная дату для некоторых строк.DATEDIFF, отображающий нулевые значения

SELECT DISTINCT b.[Entry No_] , 
      a.[Starting Date], 
      b.[Posting Date], 
      b.[Item No_], 
      b.[Invoiced Quantity], 
      a.[Litre Conversion Factor], 
      a.[Unit Rate] , 
      b.[Location Code], 
      a.[Excise Location], 
      a.[Excise Type Code], 
      a.[Unit Of Measure Code]     
FROM [Spier Live$Value Entry] b 

LEFT JOIN [Transfer Excise Tbl] a 

ON a.[No_] = b.[Item No_] 
    AND b.[Location Code] = a.[Location Code] 
    AND DateDiff(y,b.[Posting Date],a.[Starting Date]) > -365 --DateDiff Year -365 for starting date 
AND DateDiff(y,b.[Posting Date],a.[Starting Date]) < 0 --DateDiff Yer < 0 for posting date 
WHERE b.[Posting Date] > '2013-02-26'      --This is when the unit rate was entered 
AND b.[Gen_ Bus_ Posting Group] IN ('LOCA','EXSA') 
AND b.[Invoiced Quantity] <>0        --Removing all zero values 
AND b.[Item No_] = 'F00335' 
ORDER BY b.[Posting Date] 

My Result

Transfer Excise Tbl Это таблица Я присоединяюсь на

+0

какой дата разница вы используете? ... годы или дни –

+2

Если в таких случаях какая-либо из ваших дат «null», это абсолютно правильное поведение. Что еще это может показать? @alex Он говорит, что прямо там. –

+0

@alex, я использую годы – user2941071

ответ

0

Как Алекса точки в комментариях, вы смотрите на вещи с datediff с на основе дня года, нет год. Возможно, вы имели в виду <= 0, btw? Эти критерии не имеют смысла и поэтому, вероятно, не то, что вы действительно хотите. Если это так, они приведут к тому, что join s потерпят неудачу, где вы на самом деле не хотите их, что приведет к null s, отображающим таблицы a.

+0

Я приложил свой результат, то есть результат, который мне нужен, но у меня есть нули – user2941071

+0

Я не пытаюсь исправить свои разницы в датах, Да, мне нужно фильтровать на элементах меньше - 365, потому что как работает наша ERP-система – user2941071

+0

Каков наилучший способ удаления нулей и отображения правильных данных. – user2941071

Смежные вопросы