Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как такое сделать? (вопрос про crosstab) / 24 сообщений из 24, страница 1 из 1
27.05.2004, 12:28
    #32536444
KV
KV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
У меня данные в запросе представлены вот так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Гуппа1  Данные1
Гуппа1  Данные2
Гуппа1  Данные3
Гуппа1  Данные4
Гуппа2  Данные1
Гуппа2  Данные2
Гуппа2  Данные3

А нужно сделать так:

Код: plaintext
1.
2.
Группа1  Данные1  Данные2  Данные3  Данные4
Группа2  Данные1  Данные2  Данные3

Как такое осуществить?
...
Рейтинг: 0 / 0
27.05.2004, 12:30
    #32536451
Kelme
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
Crosstab Queries тебе в руки ;)
...
Рейтинг: 0 / 0
27.05.2004, 12:37
    #32536477
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
Вот в MSSQL такое сделать можно, а можно ли в Аксе - не знаю :(

Хотя и в аксе можно :)

в модуле:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Public Function myF(byval g as string) as string
Dim ret as String
Dim rs as RecordSet
Dim strsql as string
  strsql = "Select f2 from tbl1 where f1 = '" & g & "';"
  Set rs = CurrentDB.Openrecordset(strsql)

  ret = ""
  while not rs.eof
     ret = ret & " " & rs("f2")
     rs.movenext
  wend

  rs.close
  set rs = nothing

  myF = TRIM(ret)
End Function

Запрос:
Код: plaintext
1.
2.
Select f1, myF(f1) as s_f2
from tbl1
group by f1

?
...
Рейтинг: 0 / 0
27.05.2004, 12:38
    #32536480
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
или я что-то не так понял?
...
Рейтинг: 0 / 0
27.05.2004, 12:51
    #32536527
Alexander Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
Там все проще (хотя для кого как мне кажется что Case оператор в SQL удобнее) построителем запросов делаеш перекрестный запрос.
...
Рейтинг: 0 / 0
27.05.2004, 12:52
    #32536532
ищ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
папаримский. ты меня иногда удивляишь отсталыми понятиями.
давно уже (4 года назад еще) сделали рекордсет в одну строку

Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.Open "SELECT DISTINCT Клиент FROM Клиенты ORDER BY Клиент;", CurrentProject.Connection
Список1.RowSource = rst.GetString(adClipString, , ";", ";")
...
Рейтинг: 0 / 0
27.05.2004, 12:53
    #32536534
KV
KV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
Для перекрестного запроса требуется три поля, а у меня только два есть
...
Рейтинг: 0 / 0
27.05.2004, 12:54
    #32536536
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
авторпапаримский. ты меня иногда удивляишь отсталыми понятиями.
давно уже (4 года назад еще) сделали рекордсет в одну строку

4 года назад я как раз в Армии служил, мож что и пропустил :)
...
Рейтинг: 0 / 0
27.05.2004, 13:41
    #32536656
KV
KV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
2 paparome

Акцес завис нафиг, в запросе по второму полю #Ошибка

2 ищ

в списке только один столбец
...
Рейтинг: 0 / 0
27.05.2004, 13:52
    #32536686
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
авторАкцес завис нафиг, в запросе по второму полю #Ошибка
Усе прекрасно работает (проверил на Аске 97)

Кстати:
- версия Акса?
- есть ли ключ в таблице?
...
Рейтинг: 0 / 0
27.05.2004, 13:53
    #32536688
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
Да - и типы полей плиз?
...
Рейтинг: 0 / 0
27.05.2004, 13:56
    #32536698
KV
KV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
Поля текстовые, ключа нет
...
Рейтинг: 0 / 0
27.05.2004, 13:58
    #32536709
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
авторключа нет
Ага - и поди туева хуча записей?
А помочь СУБД, ключик сделать?
Что за странная привычка делать таблы без ключей, а потом на призводительность жаловаться?
...
Рейтинг: 0 / 0
27.05.2004, 13:59
    #32536714
KV
KV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
Таблица пробная была, я на ней просто проверял.
...
Рейтинг: 0 / 0
27.05.2004, 14:03
    #32536728
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
А пробный таблицы, что не "люди", им на ключи по барабану?
...
Рейтинг: 0 / 0
27.05.2004, 14:07
    #32536742
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
Похожий топик:
/topic/84412
...
Рейтинг: 0 / 0
27.05.2004, 14:09
    #32536748
KV
KV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
Таблица вот такая была, может чуть поболее, ни какой хучи записей

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Гуппа1  Данные1
Гуппа1  Данные2
Гуппа1  Данные3
Гуппа1  Данные4
Гуппа2  Данные1
Гуппа2  Данные2
Гуппа2  Данные3


...
Рейтинг: 0 / 0
27.05.2004, 16:53
    #32537216
KV
KV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
Сделал перекрестным запросом. На его основе сделал подчиненную форму.
Теперь беда она не хочет связываться с главной. Это наверное из-за запроса.
Пишет ошибку:
'Forms!frmFirst![OKPO]' не распознается ядром базы данных Microsoft Jet как допустимое имя поля или выражение.

А запрос такой был у меня:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
TRANSFORM Max(OKVED.KOD_OKVED) AS LL
SELECT OKPODBF.OKPO
FROM ((OKPODBF INNER JOIN REGEGRUL ON OKPODBF.REGN = REGEGRUL.OGRN_N)
INNER JOIN UL ON REGEGRUL.ID_NIK = UL.ID_NIK) INNER JOIN OKVED ON UL.ID_NIK = OKVED.ID_NIK
WHERE (((OKPODBF.OKPO)=[Forms]![frmFirst]![OKPO]))
GROUP BY OKPODBF.OKPO
PIVOT OKVED.KOD_OKVED;

...
Рейтинг: 0 / 0
27.05.2004, 17:02
    #32537239
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
PARAMETERS [Forms]![ИмяФормы]![ИмяКонтрола] Text, ... ;

и далее по тексту. Скопировано из: /topic/45634&pg=4
...
Рейтинг: 0 / 0
27.05.2004, 17:18
    #32537276
KV
KV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
Владимир Саныч, а что в данном случае Text?
...
Рейтинг: 0 / 0
27.05.2004, 17:22
    #32537289
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
Это тип данных. Возможно, этот пример годится только приблизительно.
...
Рейтинг: 0 / 0
27.05.2004, 17:23
    #32537295
KV
KV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
Да не работает
...
Рейтинг: 0 / 0
27.05.2004, 18:07
    #32537407
KV
KV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
А какую функцию можно написать для передачи параметра?
...
Рейтинг: 0 / 0
27.05.2004, 18:10
    #32537416
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как такое сделать? (вопрос про crosstab)
Любую функцию. Пишем в модуле:

function XXX()
XXX=Forms!frmFirstOKPO
end function

- и после этого в запросе вместо Forms!frmFirstOKPO можно ставить XXX().
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как такое сделать? (вопрос про crosstab) / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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