Tablica z xlsx do bazy firebird

0

Witam
Mam taką tablice (w załączniku) z testów przeprowadzonych na stopach ALU. Bez większych problemów przeniosłem to na serwer firebird 3 jako tabela. Chcę by użytkownik po wyborze:

  • typu stopu (combobox1) ,
  • podaniu średnicy (edit1) ,
  • i długości stopu (edit2)

otrzymał konkretny wynik. Jako zwykły SELECT zwraca cały rekord. Wszelkie podpowiedzi, rozwiązania mile widziane :-)

0

gdyby zbiór wartości parametru opisanego w nagłówkach (od 500 do 2500) był znany i stały można by to zrobić przy pomocy jednej tabeli i selectem z drabinkowym casem, ale nie było by to eleganckie rozwiązanie

polecał bym dwie tabele, np. takie :

CREATE TABLE ALLOYS (
  ID BIGINT NOT NULL,
  DESCRIPTION CHAR(30) CHARACTER SET UTF8 COLLATE UTF8);


ALTER TABLE ALLOYS ADD PRIMARY KEY (ID);


SET TERM ^ ;


CREATE TRIGGER BI_ALLOYS_ID FOR ALLOYS
ACTIVE BEFORE INSERT
POSITION 0
AS
BEGIN
  IF (NEW.ID IS NULL) THEN
      NEW.ID = GEN_ID(ALLOYS_ID_GEN, 1);
END^

SET TERM ; ^
CREATE TABLE PARAMETERS (
  ALLOY_ID BIGINT,
  SIZE1 DECIMAL(12, 4),
  SIZE2 DECIMAL(12, 4),
  PARAMVALUE DECIMAL(12, 4));


ALTER TABLE PARAMETERS ADD CONSTRAINT FK_PARAMETERS FOREIGN KEY (ALLOY_ID) REFERENCES ALLOYS(ID);

ALTER TABLE PARAMETERS ADD CONSTRAINT UQ_PARAMETERS UNIQUE (ALLOY_ID,SIZE1,SIZE2);

CREATE INDEX IDX_PARAMETERS ON PARAMETERS(ALLOY_ID);

a tak mógł by wyglądać select

SELECT 
  paramvalue 
FROM 
  ALLOYS,parameters 
where 
 ALLOYS.ID=parameters.ALLOY_ID and
 ALLOYS.DESCRIPTION=:description  and
 parameters.SIZE1=:size1 and
 parameters.SIZE2=:size2 

1 użytkowników online, w tym zalogowanych: 0, gości: 1