webForumDet fria alternativet

Exportera data till Excel

8 svar · 878 visningar · startad av samot79

samot79Medlem sedan mars 200792 inlägg
#1

Hej,

Jag ska hämta data från två tabeller i SQL och flytta över till Excel. Vilken data som skall hämtas är beroende av vilken månad som är och jag vill därför använda mig av parametrar som är möjligt att ändra direkt i Excel. Frågan jag använder mig av nu fungerar endast om jag inte använder mig av parametrar.

Frågan nu:
select namn, pers
from TABELL1 where ar='2008' and namn not in
(select TABELL2 from pkin where ar='2008' and man='04')

Om jag nu sätter man och ar till =? får jag en feltext. Beror detta på att frågan är nästlad? Någon som har en bättre formulering av frågan så att den inte behöver vara nästlad?

Tacksam för hjälp!

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Beror detta på att frågan är nästlad?

Näppeligen. Vad får du för fel?

samot79Medlem sedan mars 200792 inlägg
#3

"Syntaxfel eller åtkomstkonflikt"

Jag misstänker att detta kan bero på att min "underfråga" (där jag även vill ha en parameter, vars värde jag bestämmer i excel) ställs mot en tabell som inte tas fram?

LarsGMedlem sedan dec. 200012 465 inlägg
#4

Har du fått det att fungera med någon parameter överhuvudtaget? Vilken DBMS är det?

samot79Medlem sedan mars 200792 inlägg
#5

Jag får det att fungera om jag skriver en enkel fråga som:

select * from tabell1
where ar=?

Då får jag fram ett fönster där jag kan peka på en cell i excel.

Med DBMS vet jag inte riktigt vad du menar.

LarsGMedlem sedan dec. 200012 465 inlägg
#6

DBMS = database management system = databashanterare.

Vad händer om du testar samma fråga direkt, utan att gå via excel?

samot79Medlem sedan mars 200792 inlägg
#7

Om jag kör den första frågan direkt i query så får jag fram precis det jag vill ha. Inget strul då.

När jag sedan sätter år till okänd kommer följande felmeddelande upp

"Syntaxfel eller åtkomstkonflikt"

Hur kan man se vilken DBMS man kör?

LarsGMedlem sedan dec. 200012 465 inlägg
#8

Om du vill testa utan subselect så kan man skriva om din fråga enligt

select tabell1.namn, tabell1.pers
from tabell1 
left join tabell2 on tabell1.namn = tabell1.pkin
and tabell2.ar = '2008' 
and tabell2.man = '04'
where tabell1.ar='2008' 
   and tabell2.pkin is null

Hur kan man se vilken DBMS man kör?

Du vet väl om du använder Access eller Oracle eller DB2 eller Informix eller Postgres eller ...

samot79Medlem sedan mars 200792 inlägg
#9

Denna fråga fungerar inte eftersom det inte finns några rader med värdet "null". De namn som finns i tabell1 har aldrig kommit till tabell2 och har inte ens värdet "null".

Det jag vill åt är alltså

tabell1.namn - tabell2.namn = namn som inte inkommit till tabell 2. Och jag vill visa ett urval av kolumner från tabell1.

jag skulle tro att det är access som är databashantaren.

*när jag körde frågan som du skrev ovan så fick jag inga rader, jag antar att detta beror på att det inte finns några rader för kolumnen namn med värdet noll i tabell 2.

369 ms totalt · 5 externa anrop · cache AV · v20260730165559-full.0b955084
0 ms — hämta statistik (cache)
124 ms — slå upp tråd (db)
0 ms — hämta forumlista (cache)
124 ms — hämta inlägg (db)
119 ms — hämta bilagor (db)