02. oktober 2005 - 21:36Der er
26 kommentarer og 1 løsning
tilføj række sorteret på dato og kommune
På den igen :-) Nå, Min ene tabel består af en masse pris observationer (58387) samt dato (366 dage) og kommune, plus en masse andre. Min anden tabel består af en dato, kommune samt en variabel(historik2) der fortæller hvor mange butikker der dagen forinden satte en bestemt pris. Mit problem er nu at jeg skal have disse to tabeller hægtet sammen. Det bør kunne laves via en forespørgsel; hvor man siger noget med hvis dato i den ene tabel er lig dato i den anden og kommune lig kommune så skal historik2 tallet tilføjes og ellers skal der bare angives "0". Gir det mening?
You should be able to do it in a query. Make a new query and add both tables, then using drag and drop join the kommune field and dato fields. you will end up with to wthin lines jong both tables.
SELECT FROM [Pris Observation] INNER JOIN historik2 ON ([Pris Observation].Kommune = historik2.Kommune) AND ([Pris Observation].Dato = historik2.Dato);
Men det virker ikke. I begge tabeller er der flere observationer for en dato, dog mange flere i Pris observation. I tabellen historik2 er det kun de kommune der har en historik2 værdi over nul der er medtaget på den givne dato.. Kan dette noget af dette være årsagen? - det virker ihvertfald ikke. Forespørgslen blir kørt men resultatet outcome tabellen er tom..
what do you mean by "jeg skal have disse to tabeller hægtet sammen"?
You can use a UNION JOIN to see all records from both tables but that is not the same as selecting records from two tables so that informationfrom related records is shown on the same line
Can you give an example of the data and what you want to see?
Can you explain what you want to see from the two tables? We can now see the table design but that deosnt tell us how you would like to see the result.
you say "Problemet kan måske skyldes at i begge tabeller er en given dato observeret flere gang"
if you want to see a number of observations for a given kommune/date then this isnt a problem, but if you only expect one then your table design is wrong.
Outcome: Id (autonumbering) - Station - Adresse - dato - postnummer - kommune - weekend - pris - mode pris - historik1 - dummydk - dummyak - *historik2*
Altså Historik2 skal indsættes i tabel Pris Observation således at hvis der er datoen og kommune fra tabellen Pris Observation er lig dem fra tabellen Historik2 så indsættes værdien historik2 og ellers tilføjes bare "0".
I pris observation er det rigtigt at en dato godt kan have mange observationer for en given kommune. I historik2 er en given kommune kun med max en gang per dato, ofte er dog kun 7-10 kommuner per dato, altså der findes ikke en værdi for hver enkelt kommune til hver dato.
so if there is more than one record in [Pris Observation] with the same kommune/date then they will get the same historik2 from historik, is that correct?
this should be correct if I have all the information
SELECT [Pris Observation].*, historik2.historik2 FROM [Pris Observation] LEFT JOIN historik2 ON ([Pris Observation].dato = historik2.dato) AND ([Pris Observation].kommune = historik2.kommune);
SELECT [Pris Observation].*, IIf(IsNull([historik2].[historik2]),0,[historik2].[historik2]) AS obs FROM [Pris Observation] LEFT JOIN historik2 ON ([Pris Observation].dato = historik2.dato) AND ([Pris Observation].kommune = historik2.kommune);
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.