Filtrowanie wyników w WHERE po kolumnie nchar - Nie zrozumiałe / błędne wyniki

0

Witam,

pomóżcie mi to zrozumieć bo ja nie wiem czy ja już jestem głupi czy jakiegoś udaru dostałem. Problem jest kosmiczny w swojej banalności.

Robię 3 zapytanie na tej samej tablicy z 2 warunkami takimi samymi w każdym zapytaniu oraz warunkiem który wybiera tylko daną ReportingID = 820, w 2 zapytaniu wyklucza tą grupę <> 820 i w 3 zapytaniu pomijam ten warunek. W każdym zapytaniu sumuje tylko 1 kolumnę Sales ... i teraz jak to możliwe, że wynik 1 i 2 zapytania nie daje mi wartości z 3 zapytnia.

Poniżej przykładowy kod który lepiej wyjaśni sprawę:

  SELECT SUM(Sales) TotalSum
  FROM [sgo].[SalesData]
  WHERE [Year] = 2018 and ReportingID = '123' and DataSource in ('Sales','NotInvoiced')

  SELECT SUM(Sales) TotalSum
  FROM [sgo].[SalesData]
  WHERE [Year] = 2018 and ReportingID <> '123' and DataSource in ('Sales','NotInvoiced')

  SELECT SUM(Sales) TotalSum
  FROM [sgo].[SalesData]
  WHERE [Year] = 2018 and DataSource in ('Sales','NotInvoiced')

Z moich wyliczeń wynika, że źle liczy 2 zapytanie z warunkiem ReportingID <> '123' . Kolumna ReportingID jest typu NCHAR(3).
O co tu chodzi ? Nigdy wcześniej nie spotkałem się z takim problemem :|

Z góry dzięki za pomysły / podpowiedzi.

Pozdrawiam,
BB

Edit: @Panczo - widzę, że siedzisz na forum to pozwolę sobie Ciebie oznaczyć ... pewnie dla Ciebie to będzie banalna sprawa.

1

A masz jakieś rekordy, dla których ReportingID IS NULL, ale mają ustawioną wartość Sales?

0

Dzisus ... faktycznie była zmiana i pusty string '' został zastąpiony nullami ... rano eh (facepalm) - oczywiście masz rację to była przyczyna.
Dobrze, że nie długo urlop. :| .... Podziękował.

1 użytkowników online, w tym zalogowanych: 0, gości: 1