Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > Помогите с запросом из 2 таблиц.


Автор: ElPresly 12.5.2008, 20:47
Существует 2 таблицы 
Код

CREATE TABLE GAS_COUNTER
  (
  id number  ,
  SN_COUNTER NUMBER  ,
  ID_DEPARTMENT NUMBER,
  GAS_PRESSURE NUMBER  ,
  GAS_TEMPERATURE NUMBER  ,
  GAS_VOLUME NUMBER  ,
  GAS_VOLUME_NORM NUMBER ,
  FROM_DATE DATE  ,
  END_DATE DATE )


CREATE TABLE DEPARTMENT  (
  id_department NUMBER  ,
  name VARCHAR2 (200)  )

ALTER TABLE DEPARTMENT ADD (
      CONSTRAINT DEPARTMENT_PK
      PRIMARY KEY (ID_DEPARTMENT)
USING INDEX 
PCTFREE  10
)

ALTER TABLE GAS_COUNTER ADD (
      CONSTRAINT GAS_COUNTER_DEPARTMNET_FK
      FOREIGN KEY (ID_DEPARTMENT)
      REFERENCES  DEPARTMENT (ID_DEPARTMENT)
)



Нужно получить таблицу со столбцами name /  GAS_PRESSURE / GAS_TEMPERATURE / GAS_VOLUME / FROM_DATE. причем столбец name должен быть заполнен всеми значениями из таблицы department. ума не приложу как это сделать.

Будет использоваться посредством delphi+odac через dbgrid для ввода данных в пустые ( GAS_PRESSURE / GAS_TEMPERATURE / GAS_VOLUME / FROM_DATE) столбцы.
  

Автор: Sqlninja 13.5.2008, 09:52
ну. делаешь пустую create table xxx (name ..., GAS_PRESSURE ..., GAS_TEMPERATURE... , GAS_VOLUME ..., FROM_DATE ...). 
Потом insert into xxx select distinct name, null,null,null,null from DEPARTMENT. Потом настраиваешь свой грид на ххх. или я чегото не понял?

или же если таки надо получить существующие GAS_PRESSURE / GAS_TEMPERATURE / GAS_VOLUME / FROM_DATE, то
insert into xxx select distinct name, GAS_PRESSURE ,GAS_TEMPERATURE ,GAS_VOLUME ,FROM_DATE from DEPARTMENT d, GAS_COUNTER g where d.id_department = g.id_department

Автор: ElPresly 13.5.2008, 10:12
не. в таблице GAS_COUNTER когда вставляеш в нее значения должно быть  id, value, id_department (исходя из значения который в гриде), value, value,...
То есть на основании столбца name, вставляется в таблицу GAS_COUNTER соответствуйший id_department.

Автор: Sqlninja 13.5.2008, 10:42
ты сначала одно говорил, теперь другое... так счастья не будет. дай конкретный DDL таблицы, которую надо получить, и для каждого поля напиши откуда должно браться значение.

Автор: ElPresly 13.5.2008, 10:59
таблицу не нужно создавать физически! 

Должены быть столбцы name (все строки из таблицы department) /  столбцы  GAS_PRESSURE / GAS_TEMPERATURE NUMBER  / GAS_VOLUME /  FROM_DATE  вводятся через дбгрид, чтобы потом заносится в таблицу gas_counter. а поле id_department в таблице gas_counter должно заполнятся на основании столбца name



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)