Microsoft Query Villkor

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

Microsoft Query Villkor

Inlägg av Bosen »

Jag använder Microsoft Query för att plocka info från en databas till Excel 2010.
I en tabell så har jag en kolumn som heter DATUM.
Denna kolumn innehåller en textsträng med siffror som är formatterad "ÅÅMMDD".

Jag vill, genom en vilkorssats, plocka ut bara dagens och gårdagens datum. Jag vill inte "hårdkoda" datumet utan varje gång jag kör frågan så vill jag att det skall bli just posterna skapade det datumet jag kör frågan och datumet dagen innan.

Jag har googlat en massa och testat lite olika grejer, men får inte någon syntax som funkar. bl.a
CURDATE()
SysTime()
TODAY()
NOW()

Finns det någon som är haj på Microsoft Query?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
ds77
Inlägg: 2215
Blev medlem: 24 juli 2008, 09:38:07
Ort: småland

Re: Microsoft Query Villkor

Inlägg av ds77 »

Fungerar CONVERT(date,GETDATE())?

Edit: du ville gårdagen också, jag hade provat något sånt här:

DATEDIFF(day, datum , GETDATE())<=1

Edit igen textsträng ja då hade jag (helt oprövat) provat detta:

DATEDIFF(day, CONVERT(datetime,datum) , GETDATE())<=1
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Microsoft Query Villkor

Inlägg av johano »

Kanske nåt liknande:
(med MSSQL server syntax):

Kod: Markera allt


select * from TID_D where datum in ( convert(char(6), dateadd(dd, -1, getdate()), 12), convert(char(6), dateadd(dd, -2, getdate()), 12) )

/johan
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

Re: Microsoft Query Villkor

Inlägg av Bosen »

min sql-fråga ser nu ut som följande:

Kod: Markera allt

SELECT TID_D.DATUM, TID_D.ANST_NR, TID_D.ANL_NR, TID_D.SKIFTTEXT_1, TID_D.SKIFTTEXT_2, TID_D.SKIFTTEXT_3, TID_D.SKIFTTEXT_4, TID_D.SKIFTTEXT_5, TID_D.SKIFTTEXT_6, TID_D.AO_NR, TID_D.AO_NR, TID_D.AVDELNING, TID_D.UAV, TID_D.SKIFT, TID_D.BEHANDLAD, TID_D.PERIOD, TID_D.DIM_FTG_1, TID_D.DIM_0_1, TID_D.DIM_1_1, TID_D.DIM_FTG_2, TID_D.DIM_0_2, TID_D.DIM_1_2
FROM MeritSCV.dbo.TID_D TID_D
WHERE TID_D.DATUM in ( convert(char(6), dateadd(dd, -1, getdate()), 12), convert(char(6), dateadd(dd, -2, getdate()), 12) )
Men det bilr syntaxfel.

Testat lite smått med de övriga förslagen också, men fortfarande problem.
Helst så skulle jag vilja ha en lösning med ett villkor i vilkorslistan
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

Re: Microsoft Query Villkor

Inlägg av johano »

Hur ser felmeddelandet ut?
Kör du mot en Access-databas?

/johan
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

Re: Microsoft Query Villkor

Inlägg av Bosen »

Det jag vet om databasen är att det är en "ODBC". Om det betyer att det är access vet jag ej.
Felmedelandet ser såhär ut:
Query1.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
ds77
Inlägg: 2215
Blev medlem: 24 juli 2008, 09:38:07
Ort: småland

Re: Microsoft Query Villkor

Inlägg av ds77 »

Om du testar med:

Kod: Markera allt

EXEC(SELECT TID_D.DATUM, TID_D.ANST_NR, TID_D.ANL_NR, TID_D.SKIFTTEXT_1, TID_D.SKIFTTEXT_2, TID_D.SKIFTTEXT_3, TID_D.SKIFTTEXT_4, TID_D.SKIFTTEXT_5, TID_D.SKIFTTEXT_6, TID_D.AO_NR, TID_D.AO_NR, TID_D.AVDELNING, TID_D.UAV, TID_D.SKIFT, TID_D.BEHANDLAD, TID_D.PERIOD, TID_D.DIM_FTG_1, TID_D.DIM_0_1, TID_D.DIM_1_1, TID_D.DIM_FTG_2, TID_D.DIM_0_2, TID_D.DIM_1_2
FROM MeritSCV.dbo.TID_D TID_D
WHERE TID_D.DATUM in ( convert(char(6), dateadd(dd, -1, getdate()), 12), convert(char(6), dateadd(dd, -2, getdate()), 12) ))
Fungerar det då?
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

Re: Microsoft Query Villkor

Inlägg av Bosen »

Nej, då får jag följande:
Query2.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
ds77
Inlägg: 2215
Blev medlem: 24 juli 2008, 09:38:07
Ort: småland

Re: Microsoft Query Villkor

Inlägg av ds77 »

Kod: Markera allt

EXEC('SELECT TID_D.DATUM, TID_D.ANST_NR, TID_D.ANL_NR, TID_D.SKIFTTEXT_1, TID_D.SKIFTTEXT_2, TID_D.SKIFTTEXT_3, TID_D.SKIFTTEXT_4, TID_D.SKIFTTEXT_5, TID_D.SKIFTTEXT_6, TID_D.AO_NR, TID_D.AO_NR, TID_D.AVDELNING, TID_D.UAV, TID_D.SKIFT, TID_D.BEHANDLAD, TID_D.PERIOD, TID_D.DIM_FTG_1, TID_D.DIM_0_1, TID_D.DIM_1_1, TID_D.DIM_FTG_2, TID_D.DIM_0_2, TID_D.DIM_1_2
FROM MeritSCV.dbo.TID_D TID_D
WHERE TID_D.DATUM in ( convert(char(6), dateadd(dd, -1, getdate()), 12), convert(char(6), dateadd(dd, -2, getdate()), 12) )')
Med ett par ' kanske det fungerar bättre.
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

Re: Microsoft Query Villkor

Inlägg av Bosen »

Det funkade fint!!

Jag älskar detta forumet!

Tack!
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43176
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Microsoft Query Villkor

Inlägg av sodjan »

Jag skulle aldrig skriva SQL'en så där, utan så här:

Kod: Markera allt

EXEC
('SELECT TID_D.DATUM,
         TID_D.ANST_NR,
         TID_D.ANL_NR,
         TID_D.SKIFTTEXT_1,
         TID_D.SKIFTTEXT_2,
         TID_D.SKIFTTEXT_3,
         TID_D.SKIFTTEXT_4,
         TID_D.SKIFTTEXT_5,
         TID_D.SKIFTTEXT_6,
         TID_D.AO_NR,
         TID_D.AO_NR,
         TID_D.AVDELNING,
         TID_D.UAV,
         TID_D.SKIFT,
         TID_D.BEHANDLAD,
         TID_D.PERIOD,
         TID_D.DIM_FTG_1,
         TID_D.DIM_0_1,
         TID_D.DIM_1_1,
         TID_D.DIM_FTG_2,
         TID_D.DIM_0_2,
         TID_D.DIM_1_2
  FROM MeritSCV.dbo.TID_D TID_D
  WHERE TID_D.DATUM in
    ( convert(char(6), dateadd(dd, -1, getdate()), 12),
      convert(char(6), dateadd(dd, -2, getdate()), 12))
')
Eller något liknande... :-)
ds77
Inlägg: 2215
Blev medlem: 24 juli 2008, 09:38:07
Ort: småland

Re: Microsoft Query Villkor

Inlägg av ds77 »

Vad jag minns har man inte mycket för det i "microsoft query" den formaterar glatt om det ändå. Man får vara glad att man kan skriva något manuellt alls :)
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43176
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Microsoft Query Villkor

Inlägg av sodjan »

Senast jag körde MS-Query var 93-94 någongång, men det kan ju stämma... :-)
Och nej, för automatgenererad kod spelar det kanske inte någon större roll.
Men för något som ska underhållas i framtiden så spelar läsbarheten roll.
ds77
Inlägg: 2215
Blev medlem: 24 juli 2008, 09:38:07
Ort: småland

Re: Microsoft Query Villkor

Inlägg av ds77 »

Absolut, ett sätt kan vara att ha en liten textfil(eller en textruta eller liknande någonstans i sitt kalkylblad) som man kan ha snyggt formaterad och kopiera in från vid behov...
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

Re: Microsoft Query Villkor

Inlägg av Bosen »

Hur lägger man till ytterligare ett kriteria??
Jag försöker med:

Kod: Markera allt

  WHERE TID_D.DATUM in
    ( convert(char(6), dateadd(dd, -1, getdate()), 12),
      convert(char(6), dateadd(dd, -2, getdate()), 12))
AND (TID_D.AVDELNING Like 'S%')
')
men det vill inte fungera (jag får "Incorrect syntax near 'S' ")

Jag vill alltså bara ha poster i TID_D.AVDELNING som börjar på S


När jag ändå håller på så kan jag ju tillägga att jag även bara vill ha poster i TID_D.SKIFTTEXT_1 som inte är tomma.
Skriv svar