SQL nicht wie nicht angezeigt wird, um zu arbeiten

Was mache ich falsch? Ich zerreiß meine Haare hier raus!

Ich habe zwei Tabellen von verschiedenen servern, die durch ein ID-Feld verknüpft sind. Grundsätzlich in einem server wird die Farbe richtig aufgezeichnet (weiß, schwarz etc.) aber in der zweiten wird die Farbe mit einer Beschreibung aufgezeichnet (White – Vic Window, Rose – Vic Open In Door) Meine Aufgabe ist es, eine Abfrage zu produzieren diese datasätze zurückgeben, wo die colors nicht übereinstimmen.

Ich habe folgendes produziert:

SELECT a.orderid, a.colour AS LoggedColor, b.groupdesc AS [Processed Color] FROM [server].[DB].[dbo].[frames] AS b INNER JOIN tblorder AS a ON a.orderid = b.header_id WHERE b.colour NOT LIKE '%' + a.colour + '%' 

Allerdings scheint die ähnliche statement nicht zu funktionieren, da es die folgenden zurückgibt:

Gespeichert Farbe = Weiß

Verarbeitete Farbe = Weiß – Vic windows

ein weiterer Blick zeigt, dass es tatsächlich alle datasätze zurückgibt.

FYI Ich kann die databasestruktur nicht ändern – ich hatte viele geheime Diskussionen mit dem Schöpfer darüber, was ich davon halte.

Danke im Voraus

   

Sieht aus wie Sie haben einige Räume. Versuche dies:

 SELECT a.orderid, a.colour AS LoggedColor, @a_colour b.groupdesc AS [Processed Color] FROM [server].[DB].[dbo].[frames] AS b INNER JOIN tblorder AS a ON a.orderid = b.header_id WHERE b.colour NOT LIKE '%' + LTRIM(RTRIM(a.colour)) + '%' 

Die korrekte Syntax ist

 WHERE NOT b.colour LIKE '%' + a.colour + '%'