/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Aggregering af data i tabel?
Fra : Birger Holm-Jensen


Dato : 01-03-01 17:33

Jeg er begynder i databaser og står over for følgende:

Jeg har to tabeller jeg skal have kørt sammen i Access 97/2000. Mit problem
består i, at data (som er månedsdata) ligger summeret pr. butik på
varenummerniveau i den ene tabel, men ikke i den anden.

Eksemplet er:


TABEL 1 (år 1)

Butiksnr: Vare: Omsætning:

1 10b 100
1 20a 200
1 30c 150
2 10b 350
2 20a 175

Etc.


TABEL 2 (år 2)

Butiksnr: Varenr: Omsætning:

1 10b 20
1 10b 35
1 10b 56
Total 10b 111

1 20a 75
1 20a 115
Total 20a 190

etc.

2 10b 85
2 10b 116
2 20a 45
2 20a 36
etc.

Nu vil jeg gerne køre data i tabel 1 op i mod et summeret tal i tabel 2.
Eks. tallet for vare 10b som 100 op i mod tallet for den samme vare i tabel
2 som er 111 (og dermed give grundlag for en evt. indexberegning).

Hvordan klarer jeg den og hvordan laver jeg relationerne?



Birger Holm
bhj@postman.dk




 
 
Christian Laursen (01-03-2001)
Kommentar
Fra : Christian Laursen


Dato : 01-03-01 17:38

"Birger Holm-Jensen" <bhj@postman.dk> writes:

> Jeg er begynder i databaser og står over for følgende:
>
> Jeg har to tabeller jeg skal have kørt sammen i Access 97/2000.

Så skal du spørge i dk.edb.database.ms-access istedet for her.

XFUT: Dertil

> Mit problem
> består i, at data (som er månedsdata) ligger summeret pr. butik på
> varenummerniveau i den ene tabel, men ikke i den anden.
>
> Eksemplet er:
>
>
> TABEL 1 (år 1)
>
> Butiksnr: Vare: Omsætning:
>
> 1 10b 100
> 1 20a 200
> 1 30c 150
> 2 10b 350
> 2 20a 175
>
> Etc.
>
>
> TABEL 2 (år 2)
>
> Butiksnr: Varenr: Omsætning:
>
> 1 10b 20
> 1 10b 35
> 1 10b 56
> Total 10b 111
>
> 1 20a 75
> 1 20a 115
> Total 20a 190
>
> etc.
>
> 2 10b 85
> 2 10b 116
> 2 20a 45
> 2 20a 36
> etc.
>
> Nu vil jeg gerne køre data i tabel 1 op i mod et summeret tal i tabel 2.
> Eks. tallet for vare 10b som 100 op i mod tallet for den samme vare i tabel
> 2 som er 111 (og dermed give grundlag for en evt. indexberegning).
>
> Hvordan klarer jeg den og hvordan laver jeg relationerne?
>
>
>
> Birger Holm
> bhj@postman.dk
>
>
>

--
Med venlig hilsen
Christian Laursen

Kristian Damm Jensen (02-03-2001)
Kommentar
Fra : Kristian Damm Jensen


Dato : 02-03-01 11:07

Birger Holm-Jensen wrote:
>
> Jeg er begynder i databaser og står over for følgende:
>
> Jeg har to tabeller jeg skal have kørt sammen i Access 97/2000. Mit problem
> består i, at data (som er månedsdata) ligger summeret pr. butik på
> varenummerniveau i den ene tabel, men ikke i den anden.
>
> Eksemplet er:
>
> TABEL 1 (år 1)
>
> Butiksnr: Vare: Omsætning:
>
> 1 10b 100
> 1 20a 200
> 1 30c 150
> 2 10b 350
> 2 20a 175
>
> Etc.
>
> TABEL 2 (år 2)
>
> Butiksnr: Varenr: Omsætning:
>
> 1 10b 20
> 1 10b 35
> 1 10b 56
> Total 10b 111
>
> 1 20a 75
> 1 20a 115
> Total 20a 190
>
> etc.
>
> 2 10b 85
> 2 10b 116
> 2 20a 45
> 2 20a 36
> etc.
>
> Nu vil jeg gerne køre data i tabel 1 op i mod et summeret tal i tabel 2.
> Eks. tallet for vare 10b som 100 op i mod tallet for den samme vare i tabel
> 2 som er 111 (og dermed give grundlag for en evt. indexberegning).

Gys. Hvem har dog lavet den struktur? Personligt ville jeg nok starte
med at lave den om, men hvis strukturen i tabel 2 er den man ønsker
fremover, kan jeg godt se at det er et problem.

Mht til dit problem: Lav en tabel2_tmp el. med samme struktur som tabel1

Hæld data i den med

select butiksnummer, varenummer, sum(omsætning)
from tabel2
group by butiksnummer, varenummer

Nu har du samme struktur på dine to datasæt. Har du brug for yderligere
hjælp?

Og i øvrigt: Der er ingen grund til at dette skulle sendes til
access-gruppen. Både problemet og løsningen kunne formuleres i generelle
databasetermer.

--
Kristian Damm Jensen | Feed the hungry. Go to
kristian-damm.jensen@capgemini.dk | http://www.thehungersite.com


Stig Johansen (02-03-2001)
Kommentar
Fra : Stig Johansen


Dato : 02-03-01 15:36

Hej.

"Kristian Damm Jensen" <kristian-Damm.Jensen@REMOVEcapgemini.dk> wrote in
message news:3A9F7093.145C20FD@REMOVEcapgemini.dk...
> Birger Holm-Jensen wrote:
> >
[klip]
>
> Mht til dit problem: Lav en tabel2_tmp el. med samme struktur som tabel1
>
> Hæld data i den med
>
> select butiksnummer, varenummer, sum(omsætning)
> from tabel2
> group by butiksnummer, varenummer
>

Eller bare lave et view:

create view tabel2_total as
select butiksnummer, varenummer, sum(omsætning) omsætning
from tabel2
group by butiksnummer, varenummer

Så indeholder tabel2_total samme striktur som tabel1.

mvh
Stig Johansen.




Birger Holm-Jensen (02-03-2001)
Kommentar
Fra : Birger Holm-Jensen


Dato : 02-03-01 17:19


"Kristian Damm Jensen" <kristian-Damm.Jensen@REMOVEcapgemini.dk> skrev i en
meddelelse news:3A9F7093.145C20FD@REMOVEcapgemini.dk...
> Birger Holm-Jensen wrote:
> >
> > Jeg er begynder i databaser og står over for følgende:
> >
> > Jeg har to tabeller jeg skal have kørt sammen i Access 97/2000. Mit
problem
> > består i, at data (som er månedsdata) ligger summeret pr. butik på
> > varenummerniveau i den ene tabel, men ikke i den anden.
> >
> > Eksemplet er:
> >
> > TABEL 1 (år 1)
> >
> > Butiksnr: Vare: Omsætning:
> >
> > 1 10b 100
> > 1 20a 200
> > 1 30c 150
> > 2 10b 350
> > 2 20a 175
> >
> > Etc.
> >
> > TABEL 2 (år 2)
> >
> > Butiksnr: Varenr: Omsætning:
> >
> > 1 10b 20
> > 1 10b 35
> > 1 10b 56
> > Total 10b 111
> >
> > 1 20a 75
> > 1 20a 115
> > Total 20a 190
> >
> > etc.
> >
> > 2 10b 85
> > 2 10b 116
> > 2 20a 45
> > 2 20a 36
> > etc.
> >
> > Nu vil jeg gerne køre data i tabel 1 op i mod et summeret tal i tabel 2.
> > Eks. tallet for vare 10b som 100 op i mod tallet for den samme vare i
tabel
> > 2 som er 111 (og dermed give grundlag for en evt. indexberegning).
>
> Gys. Hvem har dog lavet den struktur? Personligt ville jeg nok starte
> med at lave den om, men hvis strukturen i tabel 2 er den man ønsker
> fremover, kan jeg godt se at det er et problem.
>
> Mht til dit problem: Lav en tabel2_tmp el. med samme struktur som tabel1
>
> Hæld data i den med
>
> select butiksnummer, varenummer, sum(omsætning)
> from tabel2
> group by butiksnummer, varenummer
>
> Nu har du samme struktur på dine to datasæt. Har du brug for yderligere
> hjælp?

Det lykkedes at få data grupperet efter din vejledning og så langt så godt.
Jeg har nu to ens udseende tabeller og
vil gerne ud fra en forespørgsel have følgende kolonner:

Butiksnr Varenr Omsætning år 1: Omsætning år 2:

1 10b 115 125
1 20b 175 211
2 10b 75 85

etc.

Jeg har prøvet mig frem med flere forskellige relationstyper, men resultatet
bliver helt tosset. Hvordan vil du lave
relationerne og hvilke felter vil du medtage i din forespørgsel?



Birger Holm
bhj@postman.dk

> Og i øvrigt: Der er ingen grund til at dette skulle sendes til
> access-gruppen. Både problemet og løsningen kunne formuleres i generelle
> databasetermer.
>
> --
> Kristian Damm Jensen | Feed the hungry. Go to
> kristian-damm.jensen@capgemini.dk | http://www.thehungersite.com
>



Kristian Damm Jensen (05-03-2001)
Kommentar
Fra : Kristian Damm Jensen


Dato : 05-03-01 13:34

Birger Holm-Jensen wrote:
>
> "Kristian Damm Jensen" <kristian-Damm.Jensen@REMOVEcapgemini.dk>
> skrev i en meddelelse news:3A9F7093.145C20FD@REMOVEcapgemini.dk...

<snip>

> Det lykkedes at få data grupperet efter din vejledning og så langt så godt.
> Jeg har nu to ens udseende tabeller og
> vil gerne ud fra en forespørgsel have følgende kolonner:
>
> Butiksnr Varenr Omsætning år 1: Omsætning år 2:
>
> 1 10b 115 125
> 1 20b 175 211
> 2 10b 75 85
>
> etc.
>
> Jeg har prøvet mig frem med flere forskellige relationstyper, men resultatet
> bliver helt tosset. Hvordan vil du lave
> relationerne og hvilke felter vil du medtage i din forespørgsel?

<snip>

create table tabel1b as
select butiksnummer, varenummer, sum(omsætning) as sum_omsaetning
from tabel2
group by butiksnummer, varenummer
;

select a.butiksnr, a.varenr, a.omsaetning, b.sum_omsaetning
from tabel1 a
join tabel1b b
on a.butiksnr = b.butiksnr
and a.varenr = b.varenr
;

P.S. Det er kotume, at man fjerne de dele af det indlæg man svarer på
som ikke længere er relevant.

--
Kristian Damm Jensen | Feed the hungry. Go to
kristian-damm.jensen@capgemini.dk | http://www.thehungersite.com


Birger Holm-Jensen (06-03-2001)
Kommentar
Fra : Birger Holm-Jensen


Dato : 06-03-01 18:01


"Kristian Damm Jensen" <kristian-Damm.Jensen@REMOVEcapgemini.dk> skrev i en
meddelelse news:3AA3871F.CDB9197D@REMOVEcapgemini.dk...
> Birger Holm-Jensen wrote:
> >
> > "Kristian Damm Jensen" <kristian-Damm.Jensen@REMOVEcapgemini.dk>
> > skrev i en meddelelse news:3A9F7093.145C20FD@REMOVEcapgemini.dk...
>
> <snip>
>
>
> create table tabel1b as
> select butiksnummer, varenummer, sum(omsætning) as sum_omsaetning
> from tabel2
> group by butiksnummer, varenummer
> ;
>
> select a.butiksnr, a.varenr, a.omsaetning, b.sum_omsaetning
> from tabel1 a
> join tabel1b b
> on a.butiksnr = b.butiksnr
> and a.varenr = b.varenr
> ;
>
> P.S. Det er kotume, at man fjerne de dele af det indlæg man svarer på
> som ikke længere er relevant.

Jeg bliver ved med at få fejlen Syntax Fejl i Create Table sætningen,
hvorefter select i første linje markeres. Jeg har checket navne, stavemåder
og tegnsætning op til flere gange og jeg har ingen danske karakterer
indblandet.

Kan du regne ud, hvad der er galt?


Birger

> --
> Kristian Damm Jensen | Feed the hungry. Go to
> kristian-damm.jensen@capgemini.dk | http://www.thehungersite.com
>



Kristian Damm Jensen (07-03-2001)
Kommentar
Fra : Kristian Damm Jensen


Dato : 07-03-01 11:41

Birger Holm-Jensen wrote:
>
> "Kristian Damm Jensen" <kristian-Damm.Jensen@REMOVEcapgemini.dk> skrev i en
> meddelelse news:3AA3871F.CDB9197D@REMOVEcapgemini.dk...
> > Birger Holm-Jensen wrote:
> > >
> > > "Kristian Damm Jensen" <kristian-Damm.Jensen@REMOVEcapgemini.dk>
> > > skrev i en meddelelse news:3A9F7093.145C20FD@REMOVEcapgemini.dk...
> >
> > <snip>
> >
> >
> > create table tabel1b as
> > select butiksnummer, varenummer, sum(omsætning) as sum_omsaetning
> > from tabel2
> > group by butiksnummer, varenummer
> > ;
> >
> > select a.butiksnr, a.varenr, a.omsaetning, b.sum_omsaetning
> > from tabel1 a
> > join tabel1b b
> > on a.butiksnr = b.butiksnr
> > and a.varenr = b.varenr
> > ;
> >
>
> Jeg bliver ved med at få fejlen Syntax Fejl i Create Table sætningen,
> hvorefter select i første linje markeres. Jeg har checket navne, stavemåder
> og tegnsætning op til flere gange og jeg har ingen danske karakterer
> indblandet.
>
> Kan du regne ud, hvad der er galt?

Formodentlig at du bruger en database end mig. Jeg har glemt, hvad du
kører på.

Det fixes let ved først at oprette tabellen, og derefter indsætte data


create table tabel1b(
butiksnummer int not null
, varenummer int not null
, sum_omsaetning money not null)
;

insert into tabel1b
select butiksnummer, varenummer, sum(omsætning)
from tabel2
group by butiksnummer, varenummer

--
Kristian Damm Jensen | Feed the hungry. Go to
kristian-damm.jensen@capgemini.dk | http://www.thehungersite.com



Birger Holm-Jensen (07-03-2001)
Kommentar
Fra : Birger Holm-Jensen


Dato : 07-03-01 21:44

>
> Formodentlig at du bruger en database end mig. Jeg har glemt, hvad du
> kører på.
>
> Det fixes let ved først at oprette tabellen, og derefter indsætte data
>
>
> create table tabel1b(
> butiksnummer int not null
> , varenummer int not null
> , sum_omsaetning money not null)
> ;
>
> insert into tabel1b
> select butiksnummer, varenummer, sum(omsætning)
> from tabel2
> group by butiksnummer, varenummer

Det virker stadig ikke...

Jeg får en syntax error uanset hvad (jeg bruger Access97/2000 i øvrigt)

Jeg kan godt lave den tomme tabel med din create tabel kode, men insert og
select vil den ikke spise?


Jeg prøver lige med mine egne betegnelser for nemheds skyld:

Tabel 2000:

Kardex Vnr Afsaet


Tabel 2001

Kardex Vnr Afsaet


Ny vil jeg gerne have en tabel (tabel_ny) med følgende fire kolonner:

Kardex Vnr Afsaet_2000 Afsaet_2001


Der vil være poster, hvor enten afsaet_2000 eller afsaet_2001 ingen værdi
har, men så skal værdien null med disse steder.

Jeg har været meget omhyggelig med tegnsætning og navne i koden, men jeg
forstår ikke hvad der går galt?


Mvh.
Birger

P.s. Jeg har problemer med at poste indlæg til nyhedsgrupper fra arbejdet
(hvor jeg skal bruge tingene), så skriv meget gerne til mig direkte på
bhj@postman.dk


> --
> Kristian Damm Jensen | Feed the hungry. Go to
> kristian-damm.jensen@capgemini.dk | http://www.thehungersite.com
>
>



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408942
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste