webForumDet fria alternativet

Hämta invecklat ur databasen

ASP

25 svar · 650 visningar · startad av Meng

Medlem sedan feb. 2003549 inlägg
Frågan#1
SQL = "SELECT * FROM opgave ORDER BY datum DESC"
RecSet.Open SQL, Conn

Hej jag har en liten förfrågan som någon här säkert kan hjälpa mig med, fast jag tycker det är rättså avancerat.
Här ovan har jag koden för vad den ska hämta och hur den ska sortera sakerna från databasen, Rätt?

"opgave" är alltså hela tablet i databasen.
Jag vill ändra denna koden så den hämtar alla poster ur databasen förutom de som har tal nr "4" i tabellen "status". Går detta? Och om detta nu fungerar så vill jag gärna ha det så att den visar alla poster plus de som har tal nr "4" i tabell "status" med dagens datum. Alltså alla poster med tal nr "4" i tabellen "status" ska inte visas förutom dem med dagens datum :birp haha jätte invecklat jag vet. Förstår ni inte så får jag försöka förklarar igen. Men går det? och kan någon hjälpa mig med koden för detta?

Medlem sedan sep. 20026 425 inlägg
#2

Menar du tabellen status eller kolumnen status? Jag antar kolumnen status? I så fall kan SQL-frågan se ut så här:

SELECT falt1,falt2,etc,
(SELECT falt1,falt2,etc FROM opgave WHERE status=4 AND datum = #" & Now() & "#) As fyra_
FROM opgave WHERE status <> 4 ORDER BY datum DESC

Hm, kanske inte blev som jag tänkt mig, men du kan ju testa. :)

/r Hm, kommer nog inte att fungera, du kommer inte få dagens poster med värdet 4 i kolumnen status.. Återkommer.

Medlem sedan juni 200032 967 inlägg
#3

Jag passar på att tipsa om SQL-forumet. Gäller frågan SQL, ställ den då i det forumet.

Mvh

Medlem sedan feb. 2003549 inlägg
#4

Haha ser jätte knepigt ut.

Vad har du tänkt att jag ska skriva där det står "falt1,falt2,etc,"?
"Status" eller? för det heter kolumen. sen står det "As fyra_" vad betyder det? om det är talet fyra så står alla med nummer så det är väl inte så lämligt att skriva det med bokstäver och på svenska?

Jag kan nästan ingen asp alls så bli inte sur om jag är helt ute och cyklar nu =)

Medlem sedan sep. 20026 425 inlägg
#5

I stället för falt1,falt2,falt3 skriver du i de kolumner du verkligen vill ha med på sidan sen. Du ska inte plocka ut all info ur tabellen med jokertecknet * om du inte behöver.

Medlem sedan feb. 2003549 inlägg
#6

Men jag ska ha Allt =) förutom hela de poster som har en 4 i tabellen status. Sen finns det andra tabeller med talet 4 så det är viktigt att den bara kollar i status för att se vilka den ska hoppa över..

Medlem sedan feb. 2003549 inlägg
#7

Här! Har screenshottat databasen =)

ex.gif
Medlem sedan aug. 20013 824 inlägg
#8

du menar inte kolumnen status da? I sa fall borde det se ut ungefär sa här:

"Select * From opgave Where status = 4 And Not fldDatum = #"& Date() &"#;"
Medlem sedan feb. 2003549 inlägg
#9

Men vad betyder detta?

fldDatum = #"& Date() &"#;"

att den ska bortse från att blocka status=4 om den har dagens datum?

Medlem sedan aug. 20013 824 inlägg
#10

Okej sag inte ditt forra inlagg...

"Select * From opgave Where status = 4 And Not left(Datum,10) = #"& Date() &"#;"

R/ Den kodedn hamtar du alla poster som har status 4 och inte har dagens datum...det va vall dedt du ville gora va? Annars far du saga till...

Medlem sedan juni 200032 967 inlägg
#11

Nej, Mikul!

Det är spöstraff på att använda strängfunktioner som left() på datum! Använd datumfunktioner på datum, strängfunktioner på strängar och talfunktioner på tal.

Medlem sedan aug. 20013 824 inlägg
#12

Hmmm...Ooopsan!´tankte inte pa det... :r

Medlem sedan feb. 2003549 inlägg
#13

Så är det någon som bryr sig om hur det istället ska se ut? :OO

Medlem sedan sep. 20026 425 inlägg
#14

Meng skrev:

Så är det någon som bryr sig om hur det istället ska se ut? :OO

Har du testat någon av våra koder än?
Vilka är testade? :D

Medlem sedan aug. 20013 824 inlägg
#15

testa detta:

select * from opgave Where status = 4 And not datediff('d', datum, date) = 0;

r/ Ursäkta mig! Glömde ett argument :e

Medlem sedan feb. 2003549 inlägg
#16

Testade den senaste här:

SQL = "select * from opgave Where status = 4 And not datediff(datum, date) = 0;"
RecSet.Open SQL, Conn

Gav felet:

Microsoft JET Database Engine fejl '80040e14' 
Antallet af argumenter til funktionen er forkert i forespørgselsudtrykket "status = 4 And not datediff(datum, date) = 0". 

/test/afd-it/opgave2.asp, linje 67

Så den funkade inte :e och nu börjar min #¤%¤"!" arbetskamrat klaga för han tycker det finns viktigare saker än detta så jag får testa de andra senare. Tack för hjälpen hittils iaf! =)

Medlem sedan juni 200032 967 inlägg
#17

Felmeddelandet säger att det är fel antal argument till funktionen (datediff()). Då får man se till att kontrollera vilka argument den funktionen vill ha. Då märker man att det saknas ett argument (Vad vill du ha för svar? Dagar? År? Millisekunder?)

Medlem sedan feb. 2003549 inlägg
#18

jaha okej, men jag har faktiskt sagt att jag inte kan nånting om asp =)

Förresten har jag ångrat mig och kommit på att ett annat system är bättre. Jag vill ha det så att den hämtar Alla poster ur databasen utom de med status=4 och en som bara hämtar alla med status=4 går det att lösa det? och det går väl mkt lättare? :birp

Medlem sedan sep. 20026 425 inlägg
#19

SQL-fråga för att hämta alla förutom de med status=4:

SELECT * FROM opgave WHERE status <> 4

SQL-fråga för att enbart hämta de där status=4:

SELECT * FROM opgave WHERE status=4
Medlem sedan aug. 20013 824 inlägg
#20

Ojj! Kolla koden igen :P ^^

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)