>Allego lo script.
Mi sembra di capire che i valori della colonna CodiceArticolo della tabella dbo.CodArt_NoKit abbiano i primi due caratteri valorizzati con un underscore "__", quindi potresti effettuare una sostituzione dei corrispondenti valori in dbo.Asa_Semco380_Copia in modo da poter mettere in JOIN le due tabelle.
A tale scopo risulta molto utile la funzione STUFF che "Deletes a specified length of characters and inserts another set of characters at a specified starting point":
USE tempdb;
GO
CREATE TABLE dbo.Asa_Semco380_Copia (
TipoCollo decimal(2, 0) NULL,
Lista char (4) NULL,
Consegna decimal(5, 0) NULL,
TabellaOrdine decimal(3, 0) NULL,
NumeroOrdine decimal(6, 0) NULL,
RigaOrdine decimal(3, 0) NULL,
CodiceArticolo char (15) NULL,
);
CREATE TABLE dbo.CodArt_NoKit (
CodiceArticolo varchar (15) NOT NULL,
Descrizione varchar (61) NULL
);
INSERT INTO dbo.Asa_Semco380_Copia VALUES(0, '094', 1, 101, 1875, 5, 'B3B1C45D');
INSERT INTO dbo.Asa_Semco380_Copia VALUES(0, '094', 1, 101, 1875, 10, 'B3PE745D');
INSERT INTO dbo.CodArt_NoKit VALUES('__B1C45D', 'ART.DI PROVA2');
/*
Ciò che vorrei ottenere è una query di selezione che mi restituisca
il conteggio dei records di Asa_Semc0380_Copia dove CodiceArticolo
non assomiglia al medesimo campo in CodArt_NoKit.
Nel caso dell'esempio dovrebbe restituire 1.
*/
SELECT COUNT(*) AS Conteggio
FROM dbo.Asa_Semco380_Copia AS A
JOIN dbo.CodArt_NoKit AS C
ON STUFF(A.CodiceArticolo, 1, 2, '__') = C.CodiceArticolo;
/* Output:
Conteggio
-----------
1
(1 row(s) affected)
*/
DROP TABLE dbo.Asa_Semco380_Copia, dbo.CodArt_NoKit;
Per maggiori dettagli ti rimando ai Books Online:
"STUFF (Transact-SQL)"
http://msdn2.microsoft.com/en-us/library/ms188043.aspx
>Ciao e grazie ancora per la rapidità nella risposta!
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org