Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.29;
Скачать: CL | DM;

Вниз

Копирование таблицы   Найти похожие ветки 

 
VadimSpb   (2005-11-25 15:00) [0]

Здравствуйте!
Копирую содержимое одной таблицы в другую из Д7 запросом в Access. Как исключить копирование строки, если в первой таблице уже существует такая же строка?


 
alex_*** ©   (2005-11-25 15:07) [1]

подзапросом


 
VadimSpb   (2005-11-25 15:15) [2]

Перепробовал разные варианты, но увы :-((
Скопировать все подзапросом проблем нет, а как не копировать уже существующие строки?
Примерчика нет?


 
msguns ©   (2005-11-25 16:05) [3]

Примерно так:

INSERT INTO FONDSR
 (Letter, FondNumber, FondType, Category,
  AFID, AArcID, ACountry, ASDate, AEDate,
  AFSize, AQDI, AQMF, AQS, AAvl, APassT, APassL, APassN,
  AJoinL, AJoinN, AUtil, ALossID, ALossDt, ALossDc)
 SELECT Letter, FondNumber, FondType, Category,
    FID, ArcID, Country, StartDate, EndDate,
    FondSize, DontInvent, MicroFished, Secret, Availability,
    PassTo, PassLetter, PassNumber, JoinLetter, JoinNumber,
    UtilDate, LossCauseID, LossDate, LossDoc
   FROM FONDS1
     WHERE FID NOT IN
       (SELECT F1.FID FROM FONDS1 F1, FONDS0 F0
         WHERE F1.Letter=F0.Letter AND
               F1.FondNumber=F0.FondNumber AND
               F1.FondType=F0.FondType AND
               F1.Category=F1.Category)


 
VadimSpb   (2005-11-25 21:06) [4]

Как я понимаю, здесь
    WHERE FID NOT IN
      (SELECT F1.FID FROM FONDS1 F1, FONDS0 F0
        WHERE F1.Letter=F0.Letter AND
              F1.FondNumber=F0.FondNumber AND
              F1.FondType=F0.FondType AND
              F1.Category=F1.Category)

проверяется, что FID не входит в некое представление из F1 и F0 и тогда происходит запись в FONDSR
Два вопроса:
1. Мне необходимо проверять наличие записи непосредственно в FONDSR. Как в этом случае?
2. Подобное я пробовал, но оказывалось следующее. Если присутствует хотя бы одна проверяемая запись во всей таблице, то копирование не происходит. А надо проверять только строку!


 
msguns ©   (2005-11-28 09:39) [5]

>1. Мне необходимо проверять наличие записи непосредственно в FONDSR. Как в этом случае?

Пример дан для образца. В твоем случае все много проще:
Что-то вроде

INSERT INTO T2 (F1...)
  SELECT F1... FROM T1
   WHERE  T1.ID NOT IN
     (SELECT ID FROM T2)

>2. Подобное я пробовал, но оказывалось следующее. Если присутствует хотя бы одна проверяемая запись во всей таблице, то копирование не происходит. А надо проверять только строку!

Что такое у тебя запись, а что такое строка ? Счетчики в таблицах не используются ?


 
VadimSpb   (2005-11-28 12:58) [6]

Спасибо, все работает. Разобрался с условиями ;-))



Страницы: 1 вся ветка

Текущий архив: 2006.01.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.034 c
15-1136883578
Чапаев
2006-01-10 11:59
2006.01.29
SQL для MDB


15-1136405680
Kerk
2006-01-04 23:14
2006.01.29
Регистрировался в одном сервисе.. с трудом выбрал незанятый логин


2-1137172222
n0p
2006-01-13 20:10
2006.01.29
Single => String


15-1136884541
Leonid
2006-01-10 12:15
2006.01.29
Как определить физический размер дисплея ?


2-1137174021
St74
2006-01-13 20:40
2006.01.29
Как DLL правильно заполнить строковыми ресурсами, и потом достать