powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / как объединить две записи из одной таблицы
16 сообщений из 16, страница 1 из 1
как объединить две записи из одной таблицы
    #35854513
frada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как объединить две записи из одной таблицы
например, таблица test
в нем
- id_test id_student id_urok ball
1 350 6 15
2 350 7 11
3 351 6 12
4 351 7 16

и при запросе чтобы выглядела
id_student id_urok[html] id_urok[php]
350 15 11
351 12 16

select student.id_student, name, surname, ball,id_urok
from student, test, urok
where student.id_student=test.id_student

id имя фамилия балл урок_html урок_php
// // //// // // //
...
Рейтинг: 0 / 0
как объединить две записи из одной таблицы
    #35854519
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Вы форумом не ошиблись? Ответ на такой вопрос сильно зависит от
используемой СУБД. В профильной ветке ответ сыщется быстрее

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
как объединить две записи из одной таблицы
    #35854525
frada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mySQL использую
...
Рейтинг: 0 / 0
как объединить две записи из одной таблицы
    #35854536
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senya_LА Вы форумом не ошиблись? Ответ на такой вопрос сильно зависит от используемой СУБД.Да вроде почти в любой можно так:
Код: plaintext
1.
2.
SELECT t1.id_student, t1.ball ball1, t2.ball ball2
FROM test t1, test t2
WHERE t1.id_student=t2.id_student AND t1.id_urok= 6  AND t2.id_urok= 7 
...
Рейтинг: 0 / 0
как объединить две записи из одной таблицы
    #35854540
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftДа вроде почти в любой можно так:

А JOIN где Коллега.... Противоречие SQL-92 стандарту.....
...
Рейтинг: 0 / 0
как объединить две записи из одной таблицы
    #35854543
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: miksoft
> Senya_L
> А Вы форумом не ошиблись? Ответ на такой вопрос сильно зависит
> от используемой СУБД.
> Да вроде почти в любой можно так:
>
> SELECT t1.id_student, t1.ball ball1, t2.ball ball2
> FROM test t1, test t2
> WHERE t1.id_student=t2.id_student AND t1.id_urok=6 AND t2.id_urok=7
>

Да и JOIN -совсем не экзотика :)

Так-то оно так. Но неизвестно, стабильно ли идет такое чередование 6 и 7 или
автор так просто примерные данные набил.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
как объединить две записи из одной таблицы
    #35854549
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr MarmeladmiksoftДа вроде почти в любой можно так:
А JOIN где Коллега.... Противоречие SQL-92 стандарту.....а почему противоречие-то?
разве формы без слова JOIN в стандарте нету?
...
Рейтинг: 0 / 0
как объединить две записи из одной таблицы
    #35854553
frada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
6 и 7 это отдельная таблица уроков

1- linux
2- wind
3 - visual basic...
6-html
7- php


а 350,351.... - другая таблица студентов

а ball - это только внутри таблицы теста от конкретного урока пренад. студенту

например прошел тест студент 351
набрал от html - 15 баллов а от зрз 11
...
Рейтинг: 0 / 0
как объединить две записи из одной таблицы
    #35854579
frada
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
раньше структура таблицы ТЕСТА была другой

id_test id_student windows html php date
1//////////350............10............. 15 .........11........02.02.02

SELECT student.id_student, name,
windows, html, php, date
FROM test, student,trener
WHERE student.id_student = test.id_student


Все студенты и их баллы по предметам ...[они предметы былы в столбце] и их стало больше, и создал другую таблицу Уроки и у каждого свой id_urok

теперь при запросе
select student.id_student, name, ball,id_urok
from student, test, urok
where student.id_student=test.id_student

этот 350 - выводится столько раз столько и сдал экзамен,
а нельзя чтобы итоги одного студента были в одной строке
...
Рейтинг: 0 / 0
как объединить две записи из одной таблицы
    #35854712
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftа почему противоречие-то? разве формы без слова JOIN в стандарте нету?

Читаем стандард на стр 179....182
...
Рейтинг: 0 / 0
как объединить две записи из одной таблицы
    #35854737
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr Marmeladmiksoftа почему противоречие-то? разве формы без слова JOIN в стандарте нету?

Читаем стандард на стр 179....182 Прочтите там же страницу 178.
...
Рейтинг: 0 / 0
как объединить две записи из одной таблицы
    #36372825
dba_Torino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ваша задача удобно решается с помощью комбинации PL-SQL + Экспорт в XML
...
Рейтинг: 0 / 0
как объединить две записи из одной таблицы
    #36372826
dba_Torino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dbms_output.put_line(‘<Table>’);

Dbms_output.put_line(‘ <Row>’);
For C1 in (
Select distinct id_urok
From test
Order by id_urok
)
Loop
Dbms_output.put_line(‘ <Cell ss:MergeAcross="1"><Data ss:Type="Number">’||id_student\id_urok ||’</Data></Cell>’);
Dbms_output.put_line(‘ <Cell ss:Index="3"><Data ss:Type="Number">’||c1.id_urok||’</Data></Cell>’);
End loop;
Dbms_output.put_line(‘ </Row>’);
Dbms_output.put_line(‘</Table>’);


Dbms_output.put_line(‘<Table>’);

For X in (
Select distinct id_student
From test
Order id_student
)
Loop
Dbms_output.put_line(‘ <Row>’);
Dbms_output.put_line(‘ <Cell><Data ss:Type="string">’||x.id_urok||’</Data></Cell>’);
For Y in (
Select id_student, id_urok, ball
From test
Order id_student, id_urok

)
Loop
if x.id_student==Y.id_student then begin
Dbms_output.put_line(‘ <Cell ss:Index="’||to_number(Y.id_urok+2)||’"><Data ss:Type="Number">’||Y.ball||’</Data></Cell>’);
end;

End loop;
Dbms_output.put_line(‘ </Row>’);
End loop;


Dbms_output.put_line(‘</Table>’);
...
Рейтинг: 0 / 0
как объединить две записи из одной таблицы
    #36372827
dba_Torino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) создаем батник select.bat с текстом :
SQLPLUS.EXE -s user/pass@namebase @select.sql > result.xls

2)создаем в текущем каталоге файл select.sql :


set heading off
set pagesize 0
set sqlnumber off
set feedback off
set verify off
set serveroutput on size 1000000

set linesize 250
set timing off
--
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,' ;
--
dbms_output.put_line('
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font x:CharSet="204"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
</Styles>
<Worksheet ss:Name="List01">
');

Dbms_output.put_line(‘<Table>’);

Dbms_output.put_line(‘ <Row>’);
For C1 in (
Select distinct id_urok
From test
Order by id_urok
)
Loop
Dbms_output.put_line(‘ <Cell ss:MergeAcross="1"><Data ss:Type="Number">’||id_student\id_urok ||’</Data></Cell>’);
Dbms_output.put_line(‘ <Cell ss:Index="3"><Data ss:Type="Number">’||c1.id_urok||’</Data></Cell>’);
End loop;
Dbms_output.put_line(‘ </Row>’);
Dbms_output.put_line(‘</Table>’);


Dbms_output.put_line(‘<Table>’);

For X in (
Select distinct id_student
From test
Order id_student
)
Loop
Dbms_output.put_line(‘ <Row>’);
Dbms_output.put_line(‘ <Cell><Data ss:Type="string">’||x.id_urok||’</Data></Cell>’);
For Y in (
Select id_student, id_urok, ball
From test
Order id_student, id_urok

)
Loop
if x.id_student==Y.id_student then begin
Dbms_output.put_line(‘ <Cell ss:Index="’||to_number(Y.id_urok+2)||’"><Data ss:Type="Number">’||Y.ball||’</Data></Cell>’);
end;

End loop;
Dbms_output.put_line(‘ </Row>’);
End loop;


Dbms_output.put_line(‘</Table>’);

dbms_output.put_line('
</Worksheet>
</Workbook>
');


3)запускаем батник
4) возможные проблемки с выполнением скрипта решаются перепрописанием одинарных кавычек [всех :)) ]

sanyurik@mail.ru
...
Рейтинг: 0 / 0
как объединить две записи из одной таблицы
    #36372911
2 dba_Torino,
Браво!
...
Рейтинг: 0 / 0
как объединить две записи из одной таблицы
    #36373058
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Мирошниченко aka mirГде это Вас носило, сударь ? :) Давненько не заглядывал.

P.S. Можешь попросить администратора отмапить свой старый ник на этот. Или наоборот.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / как объединить две записи из одной таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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