Hola,
En los ejemplos que os dejo más abajo estoy haciendo este select:
select * from condiciones XX where XX.tipo = 'C' AND xx.codigo IN (SELECT
cliente_alternativo FROM clientes WHERE cliente = xx.codigo)
El cual me devuelve esta información
Tipo Codigo Condicion especial
C 100 CLI 100
C 101 CLI 101
¿No debería haber salido tres filas dado que condiciones tiene tres filas
que cumplen la condición?
Saludos y gracias.
SqlServer 2000 SP4
DDL:
CREATE TABLE [dbo].[condiciones](
[tipo] [char](1) COLLATE Modern_Spanish_CI_AS NOT NULL,
[codigo] [char](10) COLLATE Modern_Spanish_CI_AS NOT NULL,
[condicion_especial] [char](10) COLLATE Modern_Spanish_CI_AS NOT NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[clientes](
[cliente] [char](10) COLLATE Modern_Spanish_CI_AS NOT NULL,
[cliente_alternativo] [char](10) COLLATE Modern_Spanish_CI_AS NOT NULL
) ON [PRIMARY]
DML:
INSERT INTO [clientes] ([cliente],[cliente_alternativo]) VALUES
('100','100')
INSERT INTO [clientes] ([cliente],[cliente_alternativo]) VALUES
('101','101')
INSERT INTO [clientes] ([cliente],[cliente_alternativo]) VALUES
('200','100')
INSERT INTO [clientes] ([cliente],[cliente_alternativo]) VALUES
('201','101')
INSERT INTO [clientes] ([cliente],[cliente_alternativo]) VALUES
('202','202')
INSERT INTO [condiciones] ([tipo],[codigo],[condicion_especial]) VALUES
('C','100','CLI 100')
INSERT INTO [condiciones] ([tipo],[codigo],[condicion_especial]) VALUES
('C','101','CLI 101')
INSERT INTO [condiciones] ([tipo],[codigo],[condicion_especial]) VALUES
('A','AAA','ART AAA')
INSERT INTO [condiciones] ([tipo],[codigo],[condicion_especial]) VALUES
('A','AAB','ART AAB')
INSERT INTO [condiciones] ([tipo],[codigo],[condicion_especial]) VALUES
('C','201','CLI 201')
Leer las respuestas