Avatar billede richardsen Juniormester
27. december 2021 - 16:52 Der er 5 kommentarer

Hjælp til one-to-many eller many-to-many

Hej i kloge hoveder.

Jeg sidder og roder med lidt Oracle som jeg ikke helt kan gennemskue.

Det drejer sig om kontrol af udtrukne lottotal vs mine rækker.

Jeg har 1 tabel "LOTTO" og 1 tabel "LOTTO_KUPON" :

create table LOTTO
(
  dato      DATE,
  vtal1      NUMBER(2),
  vtal2      NUMBER(2),
  vtal3      NUMBER(2),
  vtal4      NUMBER(2),
  vtal5      NUMBER(2),
  vtal6      NUMBER(2),
  vtal7      NUMBER(2),
  ttal1      NUMBER(2),
  ttal2      NUMBER(2),
  trumf      CHAR(3),
  gev7_trumf NUMBER(8),
  gev7      NUMBER(8),
  gev6_t    NUMBER(8),
  gev6      NUMBER(8),
  gev5      NUMBER(8),
  gev4      NUMBER(8)
)
tablespace USERS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 640K
    next 640K
    minextents 1
    maxextents unlimited
  );

og 1 tabel

create table LOTTO_KUPON
(
  rk      NUMBER(2),
  t1      NUMBER(2),
  t2      NUMBER(2),
  t3      NUMBER(2),
  t4      NUMBER(2),
  t5      NUMBER(2),
  t6      NUMBER(2),
  t7      NUMBER(2),
  rowid_id VARCHAR2(18),
  dato    DATE
)
tablespace USERS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

Skal der laves en one-to-many eller en many-to-many relation her.

Der er 20 faste lotto rækker og  pt 1679 lotto rækker.

Det jeg gerne vil frem til er en Oracle Forms block hvor jeg får vist ugens lottotal samt gevinster og  en anden block hvor jeg får vist mine 20 lottorækker med angivelse af antal rigtige og hvor meget (eller lidt) jeg har vundet.

Jeg har fået alle data frem ved hjælp af et view, men det virker ikke i Forms.
Avatar billede arne_v Ekspert
27. december 2021 - 17:15 #1
Jeg kan hverken lide dine felt navne eller dine data typer.

Men hvis jeg har forst]et det rigtigt s[ har du en tabel med resultatet fra en lotto tækning og en anden tabel med de lotto kuponer du har købt.

Og du bruger lotto trækning dato og lotto kupon træknings dato til at koble dem sammen.

Hvilket giver en en til mange relation. 1 trækning - mange kuponer.

Bemærk dog at det skal ændres til en mange til mange relation hvis du vil understøtte 5 ugers eller 10 ugers kuponer, men det vil også kræve ændringer til lotto pupon tabellen.
Avatar billede richardsen Juniormester
27. december 2021 - 17:33 #2
Det med dato i LOTTO_KUPON tabellen var et forsøg.
Jeg skulle have redigeret inden indsendelse :-(

Den skulle ikke have været med i spørgsmålet.
DATA typer skal være INT.

Jeg kan godt lave en en til mange relation, men som jeg ser det giver det jo 1679 * 20 rækker i tabellen.
Avatar billede richardsen Juniormester
27. december 2021 - 18:14 #3
Hej arne_v,

Det er en til mange relationen jeg har arbejdet med, men har ikke kunnet få det til at virke.

Felt navnene er som de er på grund af at det jo udelukkende er til mine egne private tabeller.

Mine tidligere analyser af private data har bl.a. afsløret at vores fjernvarmeværk har afregnet forkert de sidste 9 år idet de har udsendt info om at fra nu afregnes efter beregnet retur-temperatur i stedet for aflæst retur-temperatur.

De havde bare glemt at implementere det i deres system.

Både Kamstrup og Dansk Fjernvarme var imponerede over mine data :-)
Avatar billede arne_v Ekspert
27. december 2021 - 18:29 #4
Hvilken relation der er påvirker ikke antal rækker.

Du har et antal rækker i den ene tabel og et antal rækker i den anden tabel.

Og en relation er ikke noget som virker eller ikke virker men dine tanker som resulterer i en tabelstruktur.

[man kan så implementere relationer som foreign key contraints, men det er er noget andet]
Avatar billede arne_v Ekspert
27. december 2021 - 18:34 #5
Relationer i form af foreign key constraints kan spille en rolle hvis man genererer kode fra database strukturen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester