Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 16

Вывести строки одного поля на два

15.04.2016, 05:38. Показов 2674. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем.
Ситуация такая: имеется таблица из n - столбцов и n - строк

| pole1 | pole2 | pole3 | pole(n) |
|------- |-------|--------|----------|
| str(X)| str(X)| str(X)| str(X) |
| str(Y)| str(Y)| str(Y)| str(Y) |
| str(X)| str(X)| str(X)| str(X) |
| str(Y)| str(Y)| str(Y)| str(Y) |
сделать надо так:
| pole1 | pole1 | pole2 | pole2 | pole(n) | pole(n) |
|------- |-------|--------|--------|----------|----------|
| str(X)| str(Y)| str(X)| str(Y) | str(X) | str(Y) |
| str(X)| str(Y)| str(X)| str(Y) | str(X) | str(Y) |

Как сделать такой запрос?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.04.2016, 05:38
Ответы с готовыми решениями:

Как связать между собой два поля (список значений одного поля зависит от значения другого поля)
Есть таблица: предмет, КодТипаМатериала (список), КодМатериала (список) для примера: стул, ткань, чёрное сукно ...

Как вывести первые два поля каждой строки в обратном порядке?
Помогите пожалуйста: Вывести первые два поля каждой строки в обратном порядке при помощи awk Большое спасибо!

Два Условия для одного поля
Ребята здравствуйте, подскажите как задать Два разных Условия для одного поля пример, вот в одном у меня проверяет на заполненость If ...

17
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
15.04.2016, 09:11
Лучший ответ Сообщение было отмечено cyberkazi как решение

Решение

SQL
1
2
3
4
SELECT A.pole1, B.pole1, A.pole2, B.pole2, ..., A.poleN, B.poleN
FROM (SELECT * FROM Таблица WHERE УсловиеВыбирающееХ) A
  JOIN (SELECT * FROM Таблица WHERE УсловиеВыбирающееY) B
  ON КритерийПоКоторомуСтрокиХиYДолжныСовпасть
1
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 16
15.04.2016, 12:31  [ТС]
Спасибо, помогло очень. А можно еще вопрос, а как сделать чтобы этот же скрипт заработал на MSAccess, на MS SQL Server пашет а на MS Access уже нет, ошибка синтаксиса в предложении from
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
15.04.2016, 12:58
Перед JOIN дописать INNER.
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
15.04.2016, 13:12
Цитата Сообщение от texnik-san Посмотреть сообщение
Перед JOIN дописать INNER.
Зачем??
1
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
15.04.2016, 13:30
AFAIR аксу нужно явно указывать тип связи
0
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 16
15.04.2016, 13:34  [ТС]
Работает, спасибо большое texnik-san!
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
15.04.2016, 13:46
Цитата Сообщение от iap Посмотреть сообщение
Зачем??
Сама удивляюсь.

У меня нет вразумительных версий, почему в двух БД одной и той же фирмы (аксес и SQL Server) абсолютно разный синтаксис
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
15.04.2016, 13:54
Цитата Сообщение от pincet Посмотреть сообщение
AFAIR аксу нужно явно указывать тип связи
Сообщение про Access я проворонил...
0
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 16
15.04.2016, 14:55  [ТС]
SELECT s.[COATO], s.[KPRED], s.[RAY], a.[НомРег], a.[Регион], a.[НомПок], a.[Показатель], a.[КодСтр],
a.[0_4л], b.[0_4л], a.[5_6л], b.[5_6л], a.[7_14л], b.[7_14л], a.[15_17л], b.[15_17л], a.[18_24л], b.[18_24л],
a.[25_27л], b.[25_27л], a.[28_34л], b.[28_34л],a.[35_44л], b.[35_44л], a.[45_54л], b.[45_54л], a.[55_64л],
b.[55_64л], a.[65_и_ст], b.[65_и_ст], a.ВСЕГО, b.ВСЕГО, a2.[ВСЕГО(Пац)], a2.[Сельские]
FROM [select * from форма8 where Пол = 'муж']. AS a
INNER JOIN [select * from форма8 where Пол = 'жен']. AS b ON (a.НомРег = b.НомРег) AND (a.КодСтр = b.КодСтр)
INNER JOIN СпрЛпу as s on a.НомРег = s.НомРег
INNER JOIN форма8_2 as a2 on (a.НомРег = a2.НомРег) and (a.КодСтр = a2.КодСтр)
ORDER BY a.[НомРег], a.[КодСтр];

ошибка как исправить, понять не могу.
Миниатюры
Вывести строки одного поля на два  
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
15.04.2016, 18:04
Эм. Есть несколько вопросов к вашему запросу ))

Вот этим
Цитата Сообщение от cyberkazi Посмотреть сообщение
[select * from форма8 where Пол = 'муж'].
Цитата Сообщение от cyberkazi Посмотреть сообщение
[select * from форма8 where Пол = 'жен'].
вы что сказать хотели-то?

1) почему скобки квадратные?
2) зачем точка после скобок?
0
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 16
15.04.2016, 19:25  [ТС]
Цитата Сообщение от texnik-san Посмотреть сообщение
вы что сказать хотели-то?
1) почему скобки квадратные?
2) зачем точка после скобок?
MS Access автоматически преобразовал

Добавлено через 2 минуты
В принципе запрос работает, как только добавил inner join(ы), тогда и ошибка, связал еще 2 таблицы и все скрипт не пашет).
SELECT a.[НомРег], a.[Регион], a.[НомПок], a.[Показатель], a.[КодСтр],
a.[0_4л], b.[0_4л], a.[5_6л], b.[5_6л], a.[7_14л], b.[7_14л], a.[15_17л], b.[15_17л], a.[18_24л], b.[18_24л],
a.[25_27л], b.[25_27л], a.[28_34л], b.[28_34л],a.[35_44л], b.[35_44л], a.[45_54л], b.[45_54л], a.[55_64л],
b.[55_64л], a.[65_и_ст], b.[65_и_ст], a.ВСЕГО, b.ВСЕГО
FROM [select * from форма8 where Пол = 'муж']. AS a
INNER JOIN [select * from форма8 where Пол = 'жен']. AS b ON (a.НомРег = b.НомРег) AND (a.КодСтр = b.КодСтр)
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
15.04.2016, 19:31
Цитата Сообщение от cyberkazi Посмотреть сообщение
MS Access автоматически преобразовал
Мало ли что он исправил. Скобки круглые, точку убрать.
0
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 16
15.04.2016, 19:35  [ТС]
Сейчас попробую...
0
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 16
15.04.2016, 19:41  [ТС]
Опять ошибка(.
Миниатюры
Вывести строки одного поля на два  
0
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 16
15.04.2016, 20:03  [ТС]
В общем решил таким образом: вместо join on использовал where. Но все таки хотелось бы знать почему ошибка с inner join?

SELECT s.[COATO], s.[KPRED], s.[RAY], a.[НомРег], a.[Регион], a.[НомПок], a.[Показатель], a.[КодСтр],
a.[0_4л], b.[0_4л], a.[5_6л], b.[5_6л], a.[7_14л], b.[7_14л], a.[15_17л], b.[15_17л], a.[18_24л], b.[18_24л],
a.[25_27л], b.[25_27л], a.[28_34л], b.[28_34л],a.[35_44л], b.[35_44л], a.[45_54л], b.[45_54л], a.[55_64л],
b.[55_64л], a.[65_и_ст], b.[65_и_ст], a.ВСЕГО, b.ВСЕГО, a2.[ВСЕГО(Пац)], a2.[Сельские]
FROM (select * from форма8 where Пол = 'муж') AS a,
(select * from форма8 where Пол = 'жен') AS b, СпрЛпу, форма8_2
where (a.НомРег = b.НомРег) AND (a.КодСтр = b.КодСтр)
and (a.НомРег = s.НомРег) and (a.НомРег = a2.НомРег) and (a.КодСтр = a2.КодСтр)
ORDER BY a.[НомРег], a.[КодСтр];
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
16.04.2016, 07:28
А так работает?

SQL
1
2
3
4
5
6
7
8
9
10
11
12
SELECT s.[COATO], s.[KPRED], s.[RAY], a.[НомРег], a.[Регион], a.[НомПок], a.[Показатель], a.[КодСтр], 
a.[0_4л], b.[0_4л], a.[5_6л], b.[5_6л], a.[7_14л], b.[7_14л], a.[15_17л], b.[15_17л], a.[18_24л], b.[18_24л],
a.[25_27л], b.[25_27л], a.[28_34л], b.[28_34л],a.[35_44л], b.[35_44л], a.[45_54л], b.[45_54л], a.[55_64л], 
b.[55_64л], a.[65_и_ст], b.[65_и_ст], a.ВСЕГО, b.ВСЕГО, a2.[ВСЕГО(Пац)], a2.[Сельские]
FROM (((SELECT * FROM форма8 WHERE Пол = 'муж') AS a
  INNER JOIN (SELECT * FROM форма8 WHERE Пол = 'жен') AS b
  ON (a.НомРег = b.НомРег) AND (a.КодСтр = b.КодСтр))
  INNER JOIN СпрЛпу AS s 
  ON a.НомРег = s.НомРег)
  INNER JOIN форма8_2 AS a2 
  ON (a.НомРег = a2.НомРег) AND (a.КодСтр = a2.КодСтр)
ORDER BY a.[НомРег], a.[КодСтр];
Похоже, ему не хватало скобок, в каком порядке выполнять джойны.

В аксесе предпочтительнее использовать join on чем where. Аксес хуже стоит планы запросов, с него станется выбрать все записи картезианским соединением и только потом фильтровать.
1
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 16
16.04.2016, 09:19  [ТС]
Работает)), спасибо большое. Будем учиться!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.04.2016, 09:19
Помогаю со студенческими работами здесь

Проверить, одного ли цвета два заданных поля шахматной доски
Даны координаты двух различных полей шахматной доски х1,у1,х2,у2 ( целые числа в диапазоне 1-8 ). Проверить истинность: данные поля имеют...

Заблокировать все кроме одной строки в форме - в зависимости от данных одного поля строки
Доброго времени суток, Не могу решить одну (как мне казалось) простую задачу, а именно: - есть форма с 17 строками, - ...

Даны координаты двух клеток, определить, одного ли цвета два поля
Координаты любого поля шахматной доски могут быть заданы парой натуральных чисел, не превосходящих 8. Даны координаты двух клеток. Написать...

Определить: являются ли эти два поля шахматной доски полями одного цвета?
Помогите: координаты любого поля шахматной доски могут быть заданы парой натуральных чисел, не превосходящих восьми. Дано четыре числа (K ,...

Как вывести данные из одного текст-поля в другом?
Как вывести данные из одного текст-поля в другом? Допустим, что есть два поля In, Out и кнопка. После нажатия на кнопку, текст из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru