powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / UNION SELECT
16 сообщений из 16, страница 1 из 1
UNION SELECT
    #32074848
Leshi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите начинающему.
Есть две таблицы main(1) и ex_main(2), содержащие по два столбца, какие-то записи в них совпадают, а какие-то нет, необходимо написать скрипт на sql, чтобы на выходе получалась третья таблица, содержащая все записи из первых двух, без повторений, т.е. в третьей таблице тоже будет два столбца, а не четыре.
Я пишу:
SELECT [main(1)].Счет AS Счет, [main(1)].[Номер п/п]
FROM [main(1)]
UNION
SELECT [ex_main(2)].Счет AS Счет, [ex_main(2)].[Номер п/п]
FROM [ex_main(2)]
Теперь нужно запихнуть этот запрос в новую таблицу, и все это реализовать программно на VB в MS ACCESS.
...
Рейтинг: 0 / 0
UNION SELECT
    #32075169
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так кажись:

Код: plaintext
1.
2.
3.
4.
5.
6.
INSERT INTO Table3 (
SELECT [main( 1 )].Счет AS Счет, [main( 1 )].[Номер п/п] 
FROM [main( 1 )] 
UNION 
SELECT [ex_main( 2 )].Счет AS Счет, [ex_main( 2 )].[Номер п/п] 
FROM [ex_main( 2 )] 
)
...
Рейтинг: 0 / 0
UNION SELECT
    #32075495
Фотография tpg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только для того чтобы были только уникальные записи без повторения тогда:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
INSERT INTO Table3 SELECT DISTINCT * FROM (
SELECT [main( 1 )].Счет AS Счет, [main( 1 )].[Номер п/п] 
FROM [main( 1 )] 
UNION 
SELECT [ex_main( 2 )].Счет AS Счет, [ex_main( 2 )].[Номер п/п] 
FROM [ex_main( 2 )] 
) Psevdonim_Recordseta
...
Рейтинг: 0 / 0
UNION SELECT
    #32075687
Leshi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я писал уже такой запрос, однако ACCESS 2000, ругается на это, и пишет "ошибка синтаксиса в инструкции INSERT INTO"? А если зайти по хелпу, то там просто написано о неправильном аргументе, в другом форуме, мне сказали, что нужно сохранить запрос в виде таблицы, и уже обращаться к ней, только как сохранить запрос программно в видет таблицы Я не знаю......?
...
Рейтинг: 0 / 0
UNION SELECT
    #32075773
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программно(DAO):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim db As Database
Dim qd As QueryDef
Set db = OpenDatabase( "C:\db2.mdb" )

Set qd = New QueryDef
qd.SQL =  "SELECT * FROM zz" 
qd.Name =  "Sapros1" 
db.QueryDefs.Append qd


or
Код: plaintext
1.
2.
3.
Dim db As Database
Dim qd As QueryDef
Set db = OpenDatabase( "C:\db2.mdb" )
Set qd = db.CreateQueryDef( "qq" ,  "select * from w" )
...
Рейтинг: 0 / 0
UNION SELECT
    #32075818
Leshi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, на "as Database" ACCESS начинает ругаться, что он такого типа не знает.
Однако Я уже все сделал, теперь вопрос про другое, а как сделать, чтобы при открытии файла, загружалась форма, а не окно базы данных, где там макросы делаются, таблицы различные и т.д., как это сделано в тестовой базе Борей, Я просмотрел скрипты, но в той базе они работают, а в моей просто отказываются.
Да и там очень много мусора.
Заранее спасибо.
...
Рейтинг: 0 / 0
UNION SELECT
    #32075903
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, на "as Database" ACCESS начинает ругаться, что он такого типа не знает.

Пример для VB. Посмотри в каком ты форуме.
...
Рейтинг: 0 / 0
UNION SELECT
    #32075939
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо в Tools\Reference, однако, включить DAO.

А запрос надо так написать:
Код: plaintext
1.
2.
3.
4.
5.
6.
INSERT INTO Table3 ([Счет],[Номер п/п]) SELECT DISTINCT * FROM (
SELECT [main( 1 )].Счет AS Счет, [main( 1 )].[Номер п/п] 
FROM [main( 1 )] 
UNION 
SELECT [ex_main( 2 )].Счет AS Счет, [ex_main( 2 )].[Номер п/п] 
FROM [ex_main( 2 )] 
) Psevdonim_Recordseta


или так

Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT DISTINCT * INTO Table3 FROM (
  SELECT [main( 1 )].Счет AS Счет, [main( 1 )].[Номер п/п] 
  FROM [main( 1 )] 
  UNION 
  SELECT [ex_main( 2 )].Счет AS Счет, [ex_main( 2 )].[Номер п/п] 
  FROM [ex_main( 2 )] 
) Psevdonim_Recordseta


А потом его, запрос, просто вызвать на исполнение

Код: plaintext
1.
2.
3.
Dim db As Database
Dim qd As QueryDef
Set db = OpenDatabase( "C:\db2.mdb" )
Set qd = db.CreateQueryDef( "qq" ,  "select * from w" )
...
Рейтинг: 0 / 0
UNION SELECT
    #32075941
Leshi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДА, Я прекрасно понимаю в каком Я формуме, только в help по VB для ACCESS везде используется этот тип, только когда начинаешь его сам использовать, то программа начинает ругаться.
Кстати, и еще на счет место нахождения в форме, из форума по MS ACCESS меня послали сюда, а от сюда посылают туда, здорово.
...
Рейтинг: 0 / 0
UNION SELECT
    #32075943
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо того что-б ругаться - ответы читай!
...
Рейтинг: 0 / 0
UNION SELECT
    #32075956
Leshi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вспылил, был неправ ;), а как убрать все те окошки, которые вылезают, и сообщают, что в базу внесено 20 записей, таблица будет удалена, и т.д. и тому подобное.
...
Рейтинг: 0 / 0
UNION SELECT
    #32075961
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Access Сервис\Параметры\Правка и Поиск\Подтверждение
Программно
Код: plaintext
1.
2.
3.
4.
5.
6.
DoCmd.SetWarnings False
...
 --- Необходимый код для исполнения
 
...
DoCmd.SetWarnings True
...
Рейтинг: 0 / 0
UNION SELECT
    #32076889
Leshi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, а как можно реализовать возможность вычисления количества дней прошедших от одной даты до другой.
Например, два поля одной записи 01.01.01 и 10.01.01, между ними разница 10 дней, как ее получить, желательно в формате int.
...
Рейтинг: 0 / 0
UNION SELECT
    #32076892
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
SELECT datediff( "d" , [Поле1], [Поле2]) as diff FROM table;
...
Рейтинг: 0 / 0
UNION SELECT
    #32076993
Leshi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как на это число теперь умножить любое другое.....
...
Рейтинг: 0 / 0
UNION SELECT
    #32076996
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
SELECT datediff( "d" , [Поле1], [Поле2]) *  100  as diff FROM table;
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / UNION SELECT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]