[SQL] 2x Between in een SQL Select

Pagina: 1
Acties:

  • 418O2
  • Registratie: November 2001
  • Niet online
Ik heb een vraag die ik heel kort kan stellen:

Hoe krijg ik 2x between in een string ?!

De string ziet er ongeveer zo uit :

code:
1
SELECT * FROM [" & apparaat & "] where " & prop & " = BETWEEN " & valueup & " AND " & valuedown & " AND (SELECT * FROM " & apparaat & " WHERE  produkt = '" & produkt & "' AND capaciteit = BETWEEN  " & onder & " AND " & boven & " order by volg asc)


ik wil dus selecteren waar produkt produkt is EN waar capaciteit tussen onder en boven ligt EN waar prop tussen valueup en valuedown ligt. Dit werkt uiteraard niet.

Dit heb ik ook geprobeerd
code:
1
SELECT * FROM [" & apparaat & "] where " & prop & " = BETWEEN " & valueup & " AND " & valuedown & " AND produkt = '" & produkt & "' AND capaciteit = BETWEEN  " & onder & " AND " & boven & " order by volg asc


apparaat is de tabelnaam en volg is het volgnummer. Prop, produkt en capaciteit zijn velden in de database.

Verwijderd

code:
1
2
3
4
SELECT * FROM [" & apparaat & "] where " & prop & " = BETWEEN " & 
                valueup & "  AND " & valuedown & " AND (SELECT * FROM " & 
                apparaat & " WHERE  produkt = '" & produkt & "' AND capaciteit =
                BETWEEN  " & onder & " AND " & boven & " order by volg asc)


ik wil dus selecteren waar produkt produkt is EN waar capaciteit tussen onder en boven ligt EN waar prop tussen valueup en valuedown ligt. Dit werkt uiteraard niet.

Dit heb ik ook geprobeerd
code:
1
2
3
4
SELECT * FROM [" & apparaat & "] where " & prop & " = BETWEEN " & 
                valueup & " AND " & valuedown & " AND produkt = '" & produkt &
                " AND capaciteit = BETWEEN  " & onder & " AND " & boven & " order
                by volg asc

Iets beter te lezen.

Aste D2k >:)

Overigens staat er in je code: "' AND capaciteit = BETWEEN "
Dus " gevolgd door ', en dat klopt niet. Typo?

Verwijderd

Volgens mij moet jij in de SQL boeken nog even opzoeken wat het verschil is tussen AND en OR en wanneer je ze kan toepassen. Daarna kan je deze probleem oplossen zonder dat je hulp nodig heb van een tweaker :-)

Verwijderd

Ik zie in 1 slag op mijn oog niets fout aan de 2de query. De eerste is totale onzin natuurlijk. En wat is de foutmelding die je krijgt?

Edit:
Ik zie wel iets fout ... voor de BETWEEN moet het = teken weg (2 x)

Edit 2:
Hoe krijg ik 2x between in een string ?!
Uhm .... ik betwijfel of BETWEEN op strings werkt ... en als het om strings gaat zal je in ieder geval quotes om je waarden moeten zetten.

Niet lullig bedoeld, maar een boek over SQL zou overigens goed besteed zijn aan jou vrees ik ... http://www.w3schools.com/sql/ kan je alvast iets op weg helpen.

Verwijderd

select *
from [tabel]
where produkt = A
and capaciteit between 1 and 2
and prop between 4 and 5
order by volg asc;

Dit moet zo gewoon werken.

  • 418O2
  • Registratie: November 2001
  • Niet online
Ik kan wel een beetje SQL'en hoor ! Ennuh, 1x between werkte gewoon goed.

En over die SQL boeken, dat is nogal een stomme opmerking aangezien ik half internet heb afgezocht naar een oplossing.

Maar aan de behulpzamen : ik ga het even proberen

  • whoami
  • Registratie: December 2000
  • Laatst online: 08:53
[nohtml]
Verwijderd schreef op 20 November 2002 @ 13:10:

Uhm .... ik betwijfel of BETWEEN op strings werkt ... en als het om strings gaat zal je in ieder geval quotes om je waarden moeten zetten.
Het zal waarschijnlijk wel werken, maar dan zullen de karakters op hun ascii-waarde vergeleken worden, wat dus waarschijnlijk niet de gewenste resultaten zal voortbrengen.

https://fgheysels.github.io/


  • 418O2
  • Registratie: November 2001
  • Niet online
Ik krijg syntax-error:
code:
1
SELECT * FROM [lijn_1_droger_a] where produkt = 'F130' AND mantel = BETWEEN 1 AND 1 AND capaciteit = BETWEEN 1 AND 1 order by volg asc


Deze select werkt wel:

code:
1
"SELECT * FROM [" & apparaat & "] where produkt = '" & produkt & "' AND capaciteit BETWEEN " & onder & " AND " & boven


(even om aan te geven dat ik niet helemaal achterlijk ben :+ )

Verwijderd

Haal die = eens voor between weg in je eerste code..

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

418O2 schreef op 20 november 2002 @ 13:34:
(even om aan te geven dat ik niet helemaal achterlijk ben :+ )

Waarom negeer je dan deze opmerking?
Verwijderd schreef op 20 november 2002 @ 13:10:
Ik zie wel iets fout ... voor de BETWEEN moet het = teken weg (2 x)
Of deze:
Verwijderd schreef op 20 november 2002 @ 13:05:
Overigens staat er in je code: "' AND capaciteit = BETWEEN "
Dus " gevolgd door ', en dat klopt niet. Typo?
:P

Verwijderd

ACM: omdat hij niet helemaal achterlijk is..

  • 418O2
  • Registratie: November 2001
  • Niet online
ut werkt :

code:
1
SELECT * FROM [lijn_1_droger_a] where produkt = 'F130' AND mantel BETWEEN 1 AND 1 AND capaciteit BETWEEN 1 AND 1 order by volg asc

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Wat zeg je dan tegen al die aardige helpers?

  • 418O2
  • Registratie: November 2001
  • Niet online
dankjullie wel :*

kom ook es langs in DoC :P

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

??? DoC ???
Denial of Compliment?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Goodielover schreef op 20 november 2002 @ 14:10:
??? DoC ???
Denial of Compliment?

Die-Hard Overclocking & Cooling denk ik?:P
Pagina: 1