Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как вставить в таблицу / 21 сообщений из 21, страница 1 из 1
14.06.2005, 18:27
    #33116410
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
Всем привет.
У меня в базе есть табличка,в ней хранятся данные про системные блоки и мониторы,она имеет такой вид:

Код: plaintext
1.
2.
3.
4.
5.
id     nazvanie   ser_number    inv_number    komnata      otdel               id_bloka
 1        GX- 60         456fg           dfg56fg           203      Юридический           null 
 2       Samsung       fdg44            345df           203      Юридический            1 
 3 
.........................................................................................
В последнем столбике я указываю id системного блока для монитора(если он конечно есть,просто у нас есть клиенты,которые имеют свой монитор,тогда значение null ставится),т.е. из таблицы видно,что монитор под номером 2,прикреплен к системному блоку под номером 1.Вопрос:как мне теперь сделать так,чтобы в моей программке выводилась таблица в таком виде:
Код: plaintext
1.
2.
№   Устр-во  Сер.ном.  Инв.ном. Комната Отдел Сер.ном.мон-ра Инв.ном.мон-ра
 1     GX- 60      456fg     dfg56fg      203       Юр.     fdg44           345df
Помогите пожалуйста.Спасибо
...
Рейтинг: 0 / 0
14.06.2005, 18:31
    #33116416
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
вопрос по sql я так понимаю? Тогда
select id as №, nazvanie as Устройство...

Хотя имхо это изврат, Лучше названия самому писать
...
Рейтинг: 0 / 0
14.06.2005, 18:40
    #33116438
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
Naugвопрос по sql я так понимаю? Тогда
select id as №, nazvanie as Устройство...

Хотя имхо это изврат, Лучше названия самому писать
а подробнее можно,пожалуйста
...
Рейтинг: 0 / 0
14.06.2005, 18:42
    #33116447
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
А куда подробней? Сначала выводишь шапку, под ней выводишь результат. Ты куда результат выводить будешь? И как получил то что видно на образце?
...
Рейтинг: 0 / 0
14.06.2005, 18:46
    #33116453
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
NaugА куда подробней? Сначала выводишь шапку, под ней выводишь результат. Ты куда результат выводить будешь? И как получил то что видно на образце?
Не "получил", а "получила".
Ну шапку-то я нарисую,выводить в JTable собираюсь,я еще ничего не получила,я хочу запросом вытянуть нужную мне информацию и вставить в табличку.
...
Рейтинг: 0 / 0
14.06.2005, 18:53
    #33116464
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
Звиняюсь, фрёиляйн.
Дык в чём проблема?

Как подсоединиться к базе, как выбрать информацию и как её запихнуть в JTable
( http://www.devdaily.com/java/edu/pj/pj010024/ )
или

Как сделать так что бы рабочие названия столбцов в базе выглядели как красивая кириллица
?
...
Рейтинг: 0 / 0
14.06.2005, 19:00
    #33116482
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
NaugЗвиняюсь, фрёиляйн.
Дык в чём проблема?

Как подсоединиться к базе, как выбрать информацию и как её запихнуть в JTable
( http://www.devdaily.com/java/edu/pj/pj010024/ )
или

Как сделать так что бы рабочие названия столбцов в базе выглядели как красивая кириллица
?
Да я умею в табличку вставлять,но как в моем случае это сделать.
Я обычно делаю так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
PreparedStatement p=con.getConnection().prepareStatement("select id,ustrojstvo,s_number,inv_number,diagonal,depart,komnata from kart");
ResultSet r=p.executeQuery();;
    metadata=r.getMetaData();
           int  t=metadata.getColumnCount();
                       Vector rows= new  Vector();
                        while (r.next()){
                          Vector newRow =  new  Vector();
                             for  ( int  i =  1 ; i<=metadata.getColumnCount(); i++){
                                   Object st=r.getObject(i);
                                   newRow.addElement(st);
                            }
                         rows.addElement(newRow);
                       }
Но так не подходит,посмотри на приведенные выше таблички и какой результат мне нужен,и сразу станет ясно,что нужно как-то по другому
...
Рейтинг: 0 / 0
14.06.2005, 19:06
    #33116490
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
1)Изменять заголовки таблиц можно так
Код: plaintext
PreparedStatement p=con.getConnection().prepareStatement("select id as Номер,ustrojstvo as Устройство,s_number as СерийныйНомер,inv_number,diagonal,depart,komnata from kart");
(по-моему чтоб два слова были разделены пробелом надо слово взять в [])

2)Названия столбцов хранятся в метадате, откуда ты их потом как-то достаёшь. Вместо того чтоб обращаться за названием строк к метадате можно обращаться к обычным стрингам
...
Рейтинг: 0 / 0
14.06.2005, 19:13
    #33116505
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
JulT
Но так не подходит,посмотри на приведенные выше таблички и какой результат мне нужен,и сразу станет ясно,что нужно как-то по другому

Тебе надо составить запрос, который для каждого блока найдет соответствующий монитор? Какая БД используется?
...
Рейтинг: 0 / 0
14.06.2005, 19:14
    #33116509
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
Naug1)Изменять заголовки таблиц можно так
Код: plaintext
PreparedStatement p=con.getConnection().prepareStatement("select id as Номер,ustrojstvo as Устройство,s_number as СерийныйНомер,inv_number,diagonal,depart,komnata from kart");
(по-моему чтоб два слова были разделены пробелом надо слово взять в [])

2)Названия столбцов хранятся в метадате, откуда ты их потом как-то достаёшь. Вместо того чтоб обращаться за названием строк к метадате можно обращаться к обычным стрингам
Да я не про это,вот это вот:
Код: plaintext
1.
2.
3.
№   Устр-во  Сер.ном.  Инв.ном. Комната Отдел Сер.ном.мон-ра Инв.ном.мон-ра
 1     GX- 60      456fg     dfg56fg      203       Юр.     fdg44           345df

-это то,что в JTable,это конечный результат,то что я хочу видеть,а вот это:

Код: plaintext
1.
2.
3.
4.
5.
id     nazvanie   ser_number    inv_number    komnata      otdel               id_bloka
 1        GX- 60         456fg           dfg56fg           203      Юридический           null 
 2       Samsung       fdg44            345df           203      Юридический            1 
 3 
.........................................................................................
-это то,что в СУБД лежит
не нужно рассказывать как шабку делать и все такое,я это уже знаю
...
Рейтинг: 0 / 0
14.06.2005, 19:17
    #33116520
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
Denis Popov JulT
Но так не подходит,посмотри на приведенные выше таблички и какой результат мне нужен,и сразу станет ясно,что нужно как-то по другому

Тебе надо составить запрос, который для каждого блока найдет соответствующий монитор? Какая БД используется?
Да,и все это дело чтоб по строчкам в табличке отобразилось,т.е. в СУБД у меня системный блок и монитор к которому он относиться,находяться в разных строчках,а мне в результате в JTable нужно получить в одной строчке,чтобы ясно было видно,что этот монитор прикреплен к этому сист. блоку,фуф,вроде объяснила,не знаю что еще добавить
СУБД SQL SERVER
...
Рейтинг: 0 / 0
14.06.2005, 19:18
    #33116524
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
ой,забыла версию указать,SQL Server 7.0
...
Рейтинг: 0 / 0
14.06.2005, 19:25
    #33116540
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
А!Я то думал что вопрос про яву. Ещё раз извиняюсь.

Проще всего сделать две раздельных таблички - мониторы и системники и делать left join on system.monitor_id=monitor.id
...
Рейтинг: 0 / 0
14.06.2005, 19:27
    #33116544
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
NaugА!Я то думал что вопрос про яву. Ещё раз извиняюсь.

Проще всего сделать две раздельных таблички - мониторы и системники и делать left join on system.monitor_id=monitor.id
Вариант с двумя табличками уже поздно использовать,т.к. я на стадии завершения программы нахожусь,и вообще,именно такой вариант с таблицами,какой у меня,мне предложил модератор из форума "Проектирование БД"
...
Рейтинг: 0 / 0
14.06.2005, 19:33
    #33116549
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
Во-первых, действительно, вопрос не по Java, и быстрее всего на него ответят на специализированном форуме Хорошим тоном будет считаться приведение скрипта на создание требуемых таблиц и заполнения их данными, например:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
create table device (
    id         int
  , nazvanie   varchar( 64 )
  , ser_number varchar( 64 )
  , inv_number varchar( 64 )
  , komnata    int
  , otdel      varchar2( 64 )
  , id_bloka  int
  , constraint pk_device primary key (id)
)
go
insert into device (id, nazvanie, ser_number, inv_number, komnata, otdel, id_bloka)
values ( 1 , 'GX-60', '456fg', 'dfg56fg',  203 , 'Юридический', null)
insert into device (id, nazvanie, ser_number, inv_number, komnata, otdel, id_bloka)
values ( 2 , 'Samsung', 'fdg44', '345df',  203 , 'Юридический',  1 )

Для Oracle запрос будет примерно таким:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select d.id as "№"
     , d.nazvanie as "Устр-во"
     , d.ser_number as "Сер.ном."
     , d.inv_number as "Инв.ном."
     , d.komnata as "Комната"
     , d.otdel as "Отдел"
     , d2.inv_number as "Сер.ном.мон-ра"
from device d
     join device d2 on d.id = d2.id_bloka

А дальше можно уточнять требуемых запрос исходя из возможных данных id_bloka: что делать, если там null, но это именно системный блок, а не монитор.
...
Рейтинг: 0 / 0
14.06.2005, 20:51
    #33116634
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
Схема с лефт джойном применима и когда данные находятся в одной таблице, примерно так:
select t.id, t2.id from tableA t left join tableA t2 on t.id=t2.id
кааажется....
...
Рейтинг: 0 / 0
14.06.2005, 20:55
    #33116637
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
Денис, извиняюсь, проскочил твой пример. А в оракуле просто джойн какому джойну соответствует? левому или внутреннему?
...
Рейтинг: 0 / 0
14.06.2005, 23:47
    #33116710
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
По-моему это получается INNER JOIN, т.е. слово INNER в данном случае необязательно и подразумевается. Также подразумевается слово OUTER, если указать LEFT JOIN, RIGHT JOIN и (может быть) FULL JOIN.
...
Рейтинг: 0 / 0
15.06.2005, 10:56
    #33116897
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
NaugСхема с лефт джойном применима и когда данные находятся в одной таблице, примерно так:
select t.id, t2.id from tableA t left join tableA t2 on t.id=t2.id
кааажется....
во-во,это то,что мне нужно,только как это будет в точности,можно ссылочку на русском где про это можно прочитать
...
Рейтинг: 0 / 0
15.06.2005, 13:22
    #33117276
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
Русских ресурсов я не знаю, но есть http://www.sql-ex.ru где что-то типа sql упражнений и там есть справка по sql http://sql-ex.ru/help/select0.php
...
Рейтинг: 0 / 0
15.06.2005, 13:33
    #33117321
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вставить в таблицу
NaugРусских ресурсов я не знаю, но есть http://www.sql-ex.ru где что-то типа sql упражнений и там есть справка по sql http://sql-ex.ru/help/select0.php
спасибо большое
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как вставить в таблицу / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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