Avatar billede litop Nybegynder
12. oktober 2005 - 16:26 Der er 29 kommentarer og
1 løsning

tilføj række sorteret på dato, stationsmærke og bemandet

Lidt ala mit sidste spm.
Jeg skal have tilføjet en række med listeprisen (rackprice) til den tabel jeg i forvejen har. Rackprisen skal tilføjes hvor dato = dato(gir sig selv) station = station(shell, statoil etc. og bemandet = bemandet (0 hvis ubemandet 1 hvis bemandet).
Jeg har forsøgt med:

SELECT data.ID, data.Bemandet, data.Station, data.Adresse, data.Dato, data.Postnummer, data.Kommune, data.Weekend, data.Pris, data.[Mode Pris], data.historik1, data.Dummydk, data.Dummyak, data.Hist, data.Mærke, data.[Afstand g1], data.[Afstand g2], data.motorvej, data.[Stor vej], data.Koncentration, data.bilvask, data.kiosk, data.værksted, data.restaurant,

IIf(IsNull(listepriser.listepris),0,listepriser.listepris) AS rackprice INTO [datany]

FROM data LEFT JOIN listepriser ON (data.Bemandet = listepriser.Bemandet) AND (data.Station = listepriser.Station) AND (data.Dato = listepriser.Dato);

Men det virker ikke helt efter hensigten - som om den bare tilføjer de observationer oveni dem jeg har i forvejen. Således at der kommer flere observationer.
Avatar billede mugs Novice
12. oktober 2005 - 17:15 #1
"som om den bare tilføjer de observationer oveni dem jeg har i forvejen"

Tyder på at du har valgt en tilføjelsesforespørgsel, der som navnet siger tilføjer nye poster til en tabel. Du bør i stedet vælge en opdateringsforespørgsel, der opdaterer et i forvejen eksisterende felt i tabellen
Avatar billede litop Nybegynder
12. oktober 2005 - 20:26 #2
Den skal ikke opdaterer et eksisterende felt den skal oprette feltet rackprice i tabellen data hvor den tilføjer listepriser fra tabellen listepriser, når de tre betingelser er opfyldt, dato, station og bemandet.
Avatar billede mugs Novice
12. oktober 2005 - 20:35 #3
Du kan tilføje et felt i din tabel med denne (ikke afprøvet):

docmd runsql "Alter data ADD COLUMN rackprice String (100)"
Avatar billede litop Nybegynder
12. oktober 2005 - 20:42 #4
den skal ikke tilføje den ukritisk kun når de tre betingelser er opfyldt
Avatar billede mugs Novice
12. oktober 2005 - 20:48 #5
Ok - Det har jeg forstået.

I VBA kan du indsætte flere kriterier der, hvis de er opfyldt, udfører en handling som f.eks min docmd.runsql

Men jeg har på fornemmelsen, at du ønsker det i ren SQL til brug på internettet. Og så bakker jeg ud.
Avatar billede litop Nybegynder
13. oktober 2005 - 11:48 #6
Oki er nu bare til Access men er ikke ferm til VBA. Men tak for forsøget - anyone?!
Avatar billede mugs Novice
13. oktober 2005 - 12:16 #7
Har du kontrolleret at du har en opdateringsforespørgsel og ikke en tilføjelsesforespørgsel?
Avatar billede Slettet bruger
13. oktober 2005 - 12:19 #8
Hvad med at lave en forespørgsel, som har de hits du ønsker opdateret. Så lav det til en tilføjelsesforespørgsel og tilføj rackprice fra listepriser?~)
Avatar billede mugs Novice
13. oktober 2005 - 12:24 #9
spg > Du kan ikke opdatere med en tilføjelsesforespørgsel, men ellers har du ret.
Avatar billede litop Nybegynder
13. oktober 2005 - 12:35 #10
Jeg er ikke sikker på jeg er med, jeg kan jo netop ikke lave en forespørgsel der har de hits jeg ønsker. Ang. opdateringsforespørgsel så kan jeg ikke få det til at virke da jeg jo ikke skal opdatere noget felt men have et felt tilføjet...
Avatar billede mugs Novice
13. oktober 2005 - 12:46 #11
Hvorfor tilføjer du basre ikke feltet i tabellen i tabeldesign?
Avatar billede litop Nybegynder
13. oktober 2005 - 14:48 #12
kan godt tilføje feltet i tabeldesign og derefter lave en opdateringsforespørgsel - men hvad skal jeg så skrive opdateringsfeltet?
Avatar billede mugs Novice
13. oktober 2005 - 14:52 #13
Den værdi der skal opdateres til. Eller henvis til et andet objekt. Prøv at bruge wizard ved at trykke på tryllestaven.
Avatar billede litop Nybegynder
13. oktober 2005 - 22:06 #14
hmm kan jeg ikke få til at virke - tror det er bedst, for min forståelse ihvertfald, hvis nogle har sql forslag
Avatar billede terry Ekspert
14. oktober 2005 - 19:38 #15
if you arent getting anywhere with this quesio and still need help then I will take a look if you can send me your database

eksperten@NOSPAMsanthell.dk
remove NOSPAM

You may also need to explain in a bit more detail exactly what it is you want as I'm still not sure.
Avatar billede mugs Novice
14. oktober 2005 - 19:41 #16
"I'm still not sure" - Jeg heller ikke :o)
Avatar billede terry Ekspert
16. oktober 2005 - 20:52 #17
at the moment I'm guessing

UPDATE listepriser INNER JOIN data ON (listepriser.Dato = data.Dato) AND (listepriser.Bemandet = data.Bemandet) AND (listepriser.Station = data.Station) SET data.listepris = [listepriser]![listepris];
Avatar billede terry Ekspert
16. oktober 2005 - 20:52 #18
.
Avatar billede litop Nybegynder
16. oktober 2005 - 21:12 #19
altså jeg ved ikke helt hvordan jeg skal forklarer det men problemet er helt ligesom: http://exp.dk/spm/652801 nu er der bare tre betingelser der skal være opfyldt, dato,station og bemandet...
Hvis jeg laver update forespørgsel kommer der en tom tabel ud..
Avatar billede terry Ekspert
17. oktober 2005 - 08:14 #20
OK lets try with this, whiuch is very similar to your previous question.


SELECT data.ID, data.Bemandet, data.Station, data.Adresse, data.Dato, data.Postnummer, data.Kommune, data.Weekend, data.Pris, data.[Mode Pris], data.historik1, data.Dummydk, data.Dummyak, data.Hist, data.Mærke, data.[Afstand g1], data.[Afstand g2], data.motorvej, data.[Stor vej], data.Koncentration, data.bilvask, data.kiosk, data.værksted, data.restaurant, IIf(IsNull([listepriser].[listepris]),0,[listepriser].[listepris]) AS RackPrice
FROM listepriser RIGHT JOIN data ON (listepriser.Station = data.Station) AND (listepriser.Bemandet = data.Bemandet) AND (listepriser.Dato = data.Dato);
Avatar billede litop Nybegynder
17. oktober 2005 - 12:05 #21
Hej Terry ja det var også den jeg var fremme ved, men der er 58323 observationer i tabellen data og køres denne forespørgsel er der lige pludselig 60818 der er altså nogle linier der kommer dobbelt og de skal de jo ikk...
Avatar billede terry Ekspert
17. oktober 2005 - 12:36 #22
If records appear twice then it measn that you have more than one record with the same dato, bemandet, station in table listepriser.

Try this to see if i am right

SELECT listepriser.Dato, listepriser.Bemandet, listepriser.Station, Count(listepriser.Dato) AS CountOfDato
FROM listepriser
GROUP BY listepriser.Dato, listepriser.Bemandet, listepriser.Station;
Avatar billede litop Nybegynder
17. oktober 2005 - 12:52 #23
tak for hjælpen!
Avatar billede litop Nybegynder
17. oktober 2005 - 13:02 #24
Nu stiller jeg lige spørgsmålet her men opretter gerne et nyt af 200 point - kan man lave en forespørgsel der opdaterer således at på en given dag er der kun en altså så count bliver en for alle...?
Avatar billede terry Ekspert
17. oktober 2005 - 13:03 #25
Lets see if we can answer it here at no extra cost :o)
Avatar billede terry Ekspert
17. oktober 2005 - 13:05 #26
are you sating that you only want one for each date?

If so, then you need to make a unique index in the table so that only one record can be created for each dato, bemandet, station in table listepriser.
Avatar billede terry Ekspert
17. oktober 2005 - 13:06 #27
you can also try

SELECT DISTINCT data.ID, data.Bemandet, data.Station, data.Adresse, data.Dato, data.Postnummer, data.Kommune, data.Weekend, data.Pris, data.[Mode Pris], data.historik1, data.Dummydk, data.Dummyak, data.Hist, data.Mærke, data.[Afstand g1], data.[Afstand g2], data.motorvej, data.[Stor vej], data.Koncentration, data.bilvask, data.kiosk, data.værksted, data.restaurant, IIf(IsNull([listepriser].[listepris]),0,[listepriser].[listepris]) AS RackPrice
FROM listepriser RIGHT JOIN data ON (listepriser.Station = data.Station) AND (listepriser.Bemandet = data.Bemandet) AND (listepriser.Dato = data.Dato);
Avatar billede terry Ekspert
17. oktober 2005 - 13:07 #28
but you should still have a unique index
Avatar billede litop Nybegynder
17. oktober 2005 - 14:41 #29
hej terry - tror måske det er smartest at lave en forespørgsel der alene opdaterer tabellen listepriser og så derefter kører der de to sammen? ovenstående virker ihvertfald ikke helt efter hensigten.
Avatar billede terry Ekspert
17. oktober 2005 - 16:32 #30
do you undersatnd my comment concerning unique index? Have one would save you lots of problems :o)
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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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