Hi I have these two tables....
CREATE TABLE [dbo].[TELEFONICA] (
[DATA_HORA] [datetime] NULL ,
[NRTELEFONE] [varchar] (255) COLLATE Latin1_General_CI_AS NULL ,
[TEMPO_SEGUNDOS] [real] NULL ,
[TIPO_PABX] [varchar] (2) COLLATE Latin1_General_CI_AS NULL ,
[LOCALIDADE] [varchar] (255) COLLATE Latin1_General_CI_AS NULL ,
[VALOR_TEMPO] [money] NULL ,
[VALOR_TARIFA] [money] NULL ,
[CLASSIFICA_PABX] [varchar] (50) COLLATE Latin1_General_CI_AS NULL ,
[NUMERO_DIA] [int] NULL ,
[CLASSIFICA_TELEFONICA] [varchar] (50) COLLATE Latin1_General_CI_AS NULL ,
[TIPO_TELEFONICA] [varchar] (50) COLLATE Latin1_General_CI_AS NULL ,
[VALOR_TOTAL] [money] NULL
)
CREATE TABLE [dbo].[PABX] (
[COD_CLIENTE] [varchar] (5) COLLATE Latin1_General_CI_AS NULL ,
[DATA_HORA] [datetime] NULL ,
[NRTELEFONE] [varchar] (255) COLLATE Latin1_General_CI_AS NULL ,
[RAMAL] [varchar] (255) COLLATE Latin1_General_CI_AS NULL ,
[TEMPO_SEGUNDOS] [real] NULL ,
[TIPO] [varchar] (255) COLLATE Latin1_General_CI_AS NULL ,
[TEMPO_ATENDIMENTO] [varchar] (255) COLLATE Latin1_General_CI_AS NULL ,
[JAPROCESSADO] [int] NULL ,
[VALOR] [money] NULL ,
[VALOR_CONC] [money] NULL ,
[CLASSIFICA] [varchar] (50) COLLATE Latin1_General_CI_AS NULL ,
[LOCALIDADE] [varchar] (255) COLLATE Latin1_General_CI_AS NULL ,
[VALOR_TEMPO] [money] NULL
)
And what I need to do is select all the registries that doesn't exists in telefonica from pabx and insert into telefonica.
I did this code, but it doesn't work...
INSERT INTO TELEFONICA (T.DATA_HORA, T.NRTELEFONE, T.TEMPO_SEGUNDOS, T.TIPO_PABX,
T.VALOR_TEMPO, T.CLASSIFICA_PABX)
SELECT DISTINCT P.DATA_HORA, P.NRTELEFONE, P.TEMPO_SEGUNDOS, P.TIPO, P.VALOR_TEMPO,
P.CLASSIFICA
FROM PABX P INNER JOIN TELEFONICA T
ON P.DATA_HORA <> T.DATA_HORA
AND P.NRTELEFONE <> T.NRTELEFONE

Selct from a table and insert in other
treckamerica
You need to use NOT EXISTS construct:
INSERT INTO TELEFONICA (T.DATA_HORA, T.NRTELEFONE, T.TEMPO_SEGUNDOS, T.TIPO_PABX,
T.VALOR_TEMPO, T.CLASSIFICA_PABX)
SELECT P.DATA_HORA, P.NRTELEFONE, P.TEMPO_SEGUNDOS, P.TIPO, P.VALOR_TEMPO,
P.CLASSIFICA
FROM PABX P
WHERE NOT EXISTS(SELECT * FROM TELEFONICA T
WHERE P.DATA_HORA = T.DATA_HORA
AND P.NRTELEFONE = T.NRTELEFONE)
ianivs
And if I use
INSERT INTO TELEFONICA (T.DATA_HORA, T.NRTELEFONE, T.TEMPO_SEGUNDOS, T.TIPO_PABX,
T.VALOR_TEMPO, T.CLASSIFICA_PABX)
SELECT DISTINCT DATA_HORA, NRTELEFONE, TEMPO_SEGUNDOS, TIPO, VALOR_TEMPO,
CLASSIFICA FROM PABX WHERE DATA_HORA NOT IN(SELECT DATA_HORA FROM TELEFONICA) AND
NRTELEFONE NOT IN (SELECT NRTELEFONE FROM TELEFONICA)
What is the differences and wich ne is better