SQL-fråga

Med hjälp av den här funktionen kan du skapa egna rapporter från dina företagsdata och exportera till programmet Excel eller textfiler. För att kunna använda funktionen behöver du vissa kunskaper om språket SQL (Structured Query Language) som används för att ställa så kallade frågor (queries) till företagsdatabasen, dvs bestämma vilka data du vill ha i dina rapporter.

Språket är enkelt i sin uppbyggnad, men kan användas för att skapa avancerade rapporter från ditt företag.

En enkel SQL-fråga för att läsa ut data är uppbyggd av följande delar:

  • Urval av fält (SELECT)
  • Urval av tabell(er) (FROM)
  • Selektering av data (WHERE)
  • Sortering av data (ORDER BY)

Om man t ex skulle vilja läsa ut id, namn, plusgiro och bankgiro för de kunder i kundregistret som har kategori B och sortera efter namn, skulle frågan se ut så här:

SELECT id, name, pg, bg FROM kund WHERE category=’B’ ORDER BY name

  1. Välj Arkiv-Systemunderhåll-SQL-fråga.
  2. Skriv en SQL-fråga i fältet SQL-fråga längst upp till vänster i fönstret eller välj en tidigare sparad fråga i fältet Sparade frågor. Använd listorna under Tabeller och fält för att få hjälp med namnen på vanliga tabeller och fält i databasen.
  3. Välj knappen Test för att köra frågan och testa om den fungerar. Ett begränsat antal av resultaten visas i fönstrets nedre halva.
  4. Välj knappen Spara om du skapat en ny fråga och vill spara den för att använda senare.
  5. Välj knappen Excel eller Textfil för att exportera hela resultatet av frågan till Excel eller exportera till en textfil.

Tabellnamn och fältnamn måste skrivas precis så som de heter i databasen. Använd listorna under Tabeller och fält för att hitta dessa namn. Om du har programmet Microsoft Access och vet vad du gör kan du också använda det för att öppna själva företagsdatabasfilen ftgdata.mdb som finns sparad i företagsmappen. Där kan du se alla tabeller och fält.

Observera att du inte får göra göra några ändringar i filen ftgdata.mdb med hjälp av Access.

Om du vill ha alla fält ur tabellen kan du skriva SELECT * FROM…

Selekteringsvillkor behöver oftast omslutas med apostroftecken.

Om du vill göra flera selekteringar i samma fråga skriver du AND (och) eller OR (eller) mellan varje selektering, t ex …WHERE category=’B’ OR category=’C’… AND innebär att båda villkoren måste uppfyllas, OR innebär att det ena eller det andra måste uppfyllas.

Vid flera av de listutskrifter som finns i programmet (tex kunder, artiklar, anställda, leverantörer, arbetskoder, medarbetar mfl) kan du använda dig av en SQL-sats för att göra ett specifikt urval. Detta ger en större valfrihet när det gäller vilka poster som ska omfattas av utskriften.

Urvalet görs i rutan SQL i fönstret Alternativ för utskrift för den aktuella listan. För att programmet ska förstå vilket urval du önskar göra ska du använda dig av den aktuella kolumnnamn som gäller för tabellen följt av en operator och det villkor du vill ska vara uppfyllt för urvalet.

Det kan vara svårt att veta vad de olika kolumnerna i databasens olika tabeller heter. Ett tips är att gå in under Arkiv – Systemunderhåll – SQL-fråga där vissa av databasens tabeller finns inlagda under Tabeller och fält. När du valt en tabell i den övre rutan ser du namnen på samtliga kolumner i den nedre bilden.

En operator är något som beskriver hur datat ska väljas, dvs lika med, inte lika med, större än, mindre än mfl. Exempel på operatorer du kan använda dig av är:

  • = – Lika med
  • <> – Inte lika med
  • < – Mindre än
  • > – Större än
  • LIKE – Liknar

Det villkor du vill att ska vara uppfyllt ska normalt omgärdas av ’enkla citattecken’. Om du använder dig av operatorn LIKE ska du använda dig av jokertecknet %, ett specialvärde som används för att matcha delar av ett värde. %-tecknet kan användas både före och efter en del av ett villkor.

Om du vill ta ut en lista på alla kunder som har Stockholm inlagd som postort anger du urvalet enligt följande:

City = ’Stockholm’
Om du vill ta ut en lista på alla artiklar med en beskrivning som börjar på A anger du urvalet enligt följande:

Beskr LIKE ’A%’