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

Solutions Collecting From Web of "SQL nicht wie nicht angezeigt wird, um zu arbeiten"

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 + '%'