|
|
|
Сравнение в цикле...
|
|||
|---|---|---|---|
|
#18+
Добрый день. Научите плиз, как имея две таблицы Table1 и Table2 с данными, получить Table3 c их непересекающимися по полю f2 данными. т.е. например, Table1 имеет два поля f1 и f2. f1 I f2 -------------- text1 I 123 text2 I 124 text3 I 125 text4 I 125 text5 I 126 text6 I 127 text7 I 128 Table2 имеет одно поле f2. f2 ------------- 123 125 126 127 128 128 129 130 Хочу получить Table3 с двумя полями f1 и f2, чтобы она выглядела так : f1 I f2 -------------- text2 I 124 text4 I 125 I 128 I 129 I 130 Опыта не имею, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2009, 01:24 |
|
||
|
Сравнение в цикле...
|
|||
|---|---|---|---|
|
#18+
можно так, если нормальная база create table3 as select * from table1 where f2 in ( select f2 from table1 minus select f2 from table2) union select * from table2 where f2 in ( select f2 from table2 minus select f2 from table1) только вот что то у вас повторяющиеся данные в table3 если я правильно понял суть задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2009, 18:41 |
|
||
|
Сравнение в цикле...
|
|||
|---|---|---|---|
|
#18+
В access 2007 вариант с "Minus" в проге что-то не пляшет... Слышал, что в Oracle... не берусь... не спец. Действительно, в примере поле f2 таблицы table1 и table2 содержит разные и повторяющиеся строки... В этом и сложность... В общем, пример с нужной table3 - и отражает потребность. Т.е. если в первой два раза встречается 125, а во второй один, то в третью результирующую table3 должна попасть "не перекрытая" одна запись 125, и если во второй есть два раза 128 и по одному 129 и 130 то в table3 попадет один не перекр. 128 и соответстенно 129 и 130... Через select и union не получается... Перебор циклом тоже опыта нет... буду оччень благодарен за решение примера, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2009, 21:51 |
|
||
|
Сравнение в цикле...
|
|||
|---|---|---|---|
|
#18+
Alex_WongВ access 2007 вариант с "Minus" в проге что-то не пляшет... Слышал, что в Oracle... не берусь... не спец.Вопросы по Акцессу надо задавать на Акцессовском форуме. С точки зрения стандартного sql должно сработать такое: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2009, 22:21 |
|
||
|
Сравнение в цикле...
|
|||
|---|---|---|---|
|
#18+
по такой схеме получил table3 : f1 f2 ------------- text2 124 129 130 Здесь не попали 125 и 128... должно быть : f1 f2 ------------- text2 124 text4 125 <нет> 128 <нет> 129 <нет> 130 спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2009, 22:39 |
|
||
|
Сравнение в цикле...
|
|||
|---|---|---|---|
|
#18+
Alex_Wongдолжно быть : f1 f2 ------------- text2 124 text4 125 <нет> 128 <нет> 129 <нет> 130Почему это вдруг "должно быть"? Вовсе не должно. В table2 есть поле f2 со значение 125, значит строки text4, 125 в итоге быть не должно. В первой таблице есть строка text7, 128, значит и в итоге строки с 128 быть не должно. Смотри на свои данные внимательнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2009, 23:03 |
|
||
|
Сравнение в цикле...
|
|||
|---|---|---|---|
|
#18+
White Owl, спасибо за ваше участие... выше я пояснил почему, т.к. например в table1 есть строка text3 I 125 и есть строка text4 I 125 т.е. 125 в ней встречается два раза, а в table2 125 присутствует один раз... и должно произойти взаимоудаление равного кол-ва строк, причем мне без разницы какая из двух : с text3 или с text4 попадет в table3. Вот например, если бы в table2 не было f2=125, то в table3 должны попасть обе строки: ..... I ..... text3 I 125 text4 I 125 ..... I ..... Данный пример, имеет конкретное значение для работы с моими данными, и максимум к чему я пришел - это ввести дополнительное поле для table1 и table2 с подсчетом кол-ва строк: Так для table1 будет f2______ count 123_____1 124_____1 125_____2 126_____1 127_____1 128_____1 Для table2 будет f2______count 123_____1 125_____1 126_____1 127_____1 128_____2 129_____1 130_____1 Ну а нужная результирующая table3 должна получится как разность 'каунтов' если равна нулю то строка не попадает в table3, иначе попадает... но до рабочего кода навыков не хватает. Пробовал перебор в цикле... также... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2009, 00:22 |
|
||
|
Сравнение в цикле...
|
|||
|---|---|---|---|
|
#18+
для MS SQL Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. THINK! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2009, 08:50 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35942735&tid=2161109]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 367ms |

| 0 / 0 |
