stian123 Skrevet 1. desember 2010 Del Skrevet 1. desember 2010 (endret) Hei og hopp! Jeg lager en database med masse matvarer, der jeg skal kunne ha muligheten til å søke etter f.eks juice og få opp alle typer juice. Appelsinjuice, eplejuice juicekonsentrat etc. Har nå skrevet Like "*[matvare]*" i tblMatvare. Skal også vise en del andre ting, som valgt måleenhet (liter, desiliter) og mengde. Skal også få opp totale næringsinnhold. Får opp alt dette, men når jeg søker på f eks juice, kommer nærmest alle typer drikke opp. SQL koden min ser slik ut PARAMETERS Matvare Text ( 255 ), Måleenhet Text ( 255 ), AntallEnheter Value; SELECT tblMatvare.Navn, [Mengde]*[AntallEnheter] AS AntallEnheter, tblEnhet.Enhet, tblMatvare.SpiseligDel, tblMatvare.Vann, tblMatvare.Kilojoule, tblMatvare.Kilokalorier FROM tblMatKategori INNER JOIN (tblEnhet INNER JOIN (tblMatvare INNER JOIN tblMatvareEnhet ON tblMatvare.ID = tblMatvareEnhet.MatvareID) ON tblEnhet.EnhetsID = tblMatvareEnhet.EnhetsID) ON tblMatKategori.KategoriNr = tblMatvare.Kategori GROUP BY tblMatvare.Navn, [Mengde]*[AntallEnheter], tblEnhet.Enhet, tblMatvare.SpiseligDel, tblMatvare.Vann, tblMatvare.Kilojoule, tblMatvare.Kilokalorier, tblMatvareEnhet.MatvareID HAVING (((tblMatvare.Navn) Like "*[matvare]*") AND ((tblEnhet.Enhet)=[Måleenhet])); Hva gjør jeg galt? Endret 2. desember 2010 av stian123 Lenke til kommentar
MikkelRev Skrevet 1. desember 2010 Del Skrevet 1. desember 2010 Virker som du gjør det forferdelig komplisert. Ville gjort noe sånt: SELECT id, Navn FROM tblMatvare WHERE Navn LIKE '%juice%'; Tilpasser du den spørringen litt, vil alle juicer komme fram. Når du så velger en juice fra listen, kan du hente fram mer informasjon om den akutelle juicen. SELECT * FROM tblMatvare WHERE id = id (id er den du hentet fra forrige spørring). Lenke til kommentar
stian123 Skrevet 1. desember 2010 Forfatter Del Skrevet 1. desember 2010 Virker som du gjør det forferdelig komplisert. Ville gjort noe sånt: SELECT id, Navn FROM tblMatvare WHERE Navn LIKE '%juice%'; Tilpasser du den spørringen litt, vil alle juicer komme fram. Når du så velger en juice fra listen, kan du hente fram mer informasjon om den akutelle juicen. SELECT * FROM tblMatvare WHERE id = id (id er den du hentet fra forrige spørring). Men poenget er at en annen person skal kunne søke i databasen uten å måtte programmere selv. Ikke bare juice, men også pizza, gulrot etc. Lenke til kommentar
stian123 Skrevet 1. desember 2010 Forfatter Del Skrevet 1. desember 2010 Har forenklet den for å gjøre eksempelet lettere: PARAMETERS Matvare Text ( 255 ); SELECT tblMatvare.Navn FROM tblMatvare WHERE (((tblMatvare.Navn) Like "[Matvare]")); Men å bruke "%[Matvare]%" ser ikke ut til å fungere, da jeg ikke får noenting opp. Har også prøvd med "*[Matvare]*" og diverse andre tegn, men ser ikke ut til å fungere. Lenke til kommentar
stian123 Skrevet 1. desember 2010 Forfatter Del Skrevet 1. desember 2010 (endret) Fant ut av det, måtte skrive: Like "*" & [Matvare] & "*" Endret 1. desember 2010 av stian123 Lenke til kommentar
MikkelRev Skrevet 1. desember 2010 Del Skrevet 1. desember 2010 Nå vet jeg ikke hvilket språk og DBMS du holder på med. Uansett, spørringen kjører selvfølgelig i backend mens brukeren bruker et frontend (gui) til å taste inn søkeord. Trykk på LØST-knappen hvis problemet ditt er løst. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå