powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Странный запрос, или как извратиться
25 сообщений из 52, страница 1 из 3
Странный запрос, или как извратиться
    #32836093
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MDB
Нужна идея
Есть данные
Таблица 1
КодДатаАктВыполнение101.01.04110102.01.04220201.01.04330
Таблица 2
КодДата п\пОплата105.01.045115205.01.045230
Можно ли с помощью запроса получить такую гуппировку
КодДатаАктВыполнение Дата п\пОплата101.01.04110 05.01.045115102.01.04220 201.01.04330 05.01.045230
Крутила и так и этак
Вижу выход заполнить через рекордсет, но боюсь, медленно работать будет
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836106
Рачаев Олег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе утро, Ирча.

Код: plaintext
1.
2.
SELECT Таблица1.Код, Таблица1.Дата, Таблица1.Акт, Таблица1.Выполнение,
       Таблица2.Дата,Таблица2.п\п,Таблица2.Оплата
FROM Таблица1 LEFT JOIN Таблица2 ON Таблица1.Код=Таблица2.Код

И никаких рекордсетов ;)
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836109
Рачаев Олег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- не надо, это просто выделить хотел, но не работает :)
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836113
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе утро
Данные не совсем корректно привела
Таблица 1
Код Дата Акт Выполнение 1 01.01.04 110 1 02.01.04 2 20 2 01.01.04 3 30
Таблица 2
Код Дата п\п Оплата 1 05.01.04 51 15 2 05.01.04 52 30 2 06.01.04 53 30
Надо
Код Дата Акт Выполнение Дата п\п Оплата 1 01.01.04 1 10 05.01.04 51 15 1 02.01.04 2 20 2 01.01.04 3 30 05.01.04 52 30 2 06.01.04 53 30
Поэтому LEFT JOIN не поможет
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836127
Рачаев Олег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если попробовать так: Оформляем 2 запроса, один с LEFT JOIN, другой - RIGHT JOIN, а потом делаем объеденение этих запросов ( UNION) ? Как такой вариант?
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836128
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рачаев Олег - не надо, это просто выделить хотел, но не работает :)
LEFT JOIN и в первом варианте не совсем помогает, ибо во второй строке нулы не получатся :(

если в первой и второй таблице добавить счетчик внутри группы (Код),
например так: http://www.sql.ru/faq/faq_topic.aspx?fid=214 (Q7)

то мог бы помочь FULL JOIN, но его в Аксе нет, но можно на форуме пошукать как его сымитировать :)

Удачи
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836132
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разбивайте сложную задачу на этапы.

1. Получить в запросе список уникальных КОД из первой и второй таблиц.
2. Объединить их юнионом.
3. Еще раз отфильтровать уникальные дистинктом.
4. Полученный результат джоинить с первой и второй таблицами.
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836159
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за советы.
Попробую воспользоваться счетчиком
А как на чсет рекордсета, кто делал
записей много
стоит связываться или нет?
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836181
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a full join в Аксе нет?
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836271
Рачаев Олег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 paparome, действительно Null-ей не получаеться, виноват - проглядел ...

А насчет фул джойна: Можно попробовать похимичить через условие WHERE, правда сложно получиться ...
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836274
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или я сошла с ума, или бури сегодня магнитные,
ничего....
Пони бегает по кругу
Попробовала все предложения результат ЗИРРОУ
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836301
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и в уме круги считает

1 mdb выложи в архиве с маленькими табличками - будем думать
2 реальное количество записей - ?
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836355
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может тогда так?

select * from table1 as a cross join table2 as b
where (a.код=b.код or b.код in null) and (a.код=b.код or a.код in null)
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836379
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shurgenzможет тогда так?

select * from table1 as a cross join table2 as b
where (a.код=b.код or b.код in null) and (a.код=b.код or a.код in null)
и в mdb cross join работает - а какая версия Access ?
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836385
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вместо кросс джойна можно и просто запятую поставить
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836400
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shurgenzвместо кросс джойна можно и просто запятую поставить
1 возможно
2 предлагать непроверенное - даме ,не очень галантно !
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836405
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шугард:

Согласен, однако, я же просто мысль предложил... дама, или не дама, учимся мы все, и дамы, и не дамы
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836414
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Как сымитировать Full Join
Union без All, а потом к нему присобачивать. Изврат, а что делать;-(
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836417
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К тому же... разве есть разница между запятой и кросс джойном? я, чесс говоря, не встречал разницы меж тем и другим
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836582
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Access 2003
cross и запятую пока не пробовала
Прикладываю файл с двумя табличками
Количество записей будет не более нескольких сотен за раз
на даты будет условие (отбор за период)
Помогите кто чем может (тут смайлик с большой лужей слез)
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836681
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 paparome
full join тут тоже не поможет - он перемножит количество записей с одинаковым кодом. А вот пронумеровать записи хорошо. Можно даже не в этом же запросе, а во временную таблицу. Ох, как интересно, да тут и индексов никаких нет.
А без индекса их и пронумеровать толком не получиться.
Хотя можно попробовать. Но скорость опять же позволит желать лучшего.

В стандартном модуле:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim Kod
Dim CurrId as long

public function GetNextId(KeyField) as long
  if KeyField=Kod then
    CurrId=CurrId+ 1 
  else
    CurrId= 1 
    Kod=KeyField
  endif
  GetNextId=CurrId
end function

Запросы:
1)
Код: plaintext
select GetNextId(Код) as Id, * into temp1 from Таблица1 order by Код
2)Сбросить Kod, хоть так: select GetNextId(Null)
3)
Код: plaintext
select GetNextId(Код) as Id, * into temp2 from Таблица2 order by Код
4)
Код: plaintext
1.
2.
insert into temp1 (Id)
select temp2.Id from temp2 left join temp1 on ((temp2.Код=temp1.Код) and (temp2.Id=temp1.Id))
where temp1.Id is null
и
5)
Код: plaintext
1.
select temp1.*, temp2.* 
from temp1 left join temp2 on ((temp2.Код=temp1.Код) and (temp2.Id=temp1.Id))
После (или перед) работы не забываем удалять temp1/2.
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836731
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
SELECT Table1.Код, 
    IIf([Table2].[Дата]=
            (Select Min(t2.Дата) 
            From Table2 t2 
            Where t2.Код=Table1.Код),
        [Table1].[Дата],Null) AS Дата1, 
    IIf([Table2].[Дата]=
            (Select Min(t2.Дата) 
            From Table2 t2 
            Where t2.Код=Table1.Код),
        [Table1].[Акт],Null) AS Акт, 
    IIf([Table2].[Дата]=
            (Select Min(t2.Дата) 
            From Table2 t2 
            Where t2.Код=Table2.Код),
        [Table1].[Выполнение],Null) AS Выполнение, 
    IIf([Table1].[Дата]=
            (Select Min(t1.Дата) 
            From Table1 t1 
            Where t1.Код=Table2.Код),
        [Table2].[Дата],Null) AS Дата2, 
    IIf([Table1].[Дата]=
            (Select Min(t1.Дата) 
            From Table1 t1 
            Where t1.Код=Table2.Код),
        [Table2].[пп],Null) AS пп, 
    IIf([Table1].[Дата]=
            (Select Min(t1.Дата) 
            From Table1 t1 
            Where t1.Код=Table2.Код),
        [Table2].[Оплата],Null) AS Оплата
FROM Table1 INNER JOIN Table2 ON Table1.Код = Table2.Код
ORDER BY Table1.Код, Table1.Дата, Table2.Код, Table2.Дата;

можно как-нить заоптимизировать
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836737
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну на запрос(Запрос2) раз самой лениво
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836782
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Shark
По датам объединять не надо, судя по примеру.

2ЛП
Что это было? :))
...
Рейтинг: 0 / 0
Странный запрос, или как извратиться
    #32836793
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс, точно.
Скажи тогда словами, че надо то. Как оплата должна догадаться по какому она акту если их Н? Фифом?
Они сами не знают чего хочут:^)
...
Рейтинг: 0 / 0
25 сообщений из 52, страница 1 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Странный запрос, или как извратиться
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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