Toon posts:

SQL query vraag

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb de search gebruikt, maar kan zo snel niet iets vinden.

Ik ben bezig op mn stage met een soort uitleen software bibliotheek.
Als iemand een cd komt ophalen, wordt hij in een tabel gezet als uitgeleend.
Hierin komt dan ook gelijk de datum te staan van die dag.
De cd mag maximaal een week worden uitgeleend.


VRAAG 1:

Ik wil een query die alle uitgeleende software laat zien.
Als hij niet is uitgeleend staat er in de database NULL.

strSQL= "SELECT T_EXEMPLAREN.UITLEEN_DAT, T_EXEMPLAREN.EXEMPLAAR_ID, T_EXEMPLAREN.NAAM, T_EXEMPLAREN.TELEFOON, T_EXEMPLAREN.PIEPER FROM T_EXEMPLAREN

De bovenstaande query werkt gewoon, maar hij laat natuurlijk alle exemplaar_id's zien. Maar hij moet alleen de Exemplaar_id's laten zien waar de uitleen_dat is ingevuld. Dus heb ik het volgende toegevoegd.

WHERE T_EXEMPLAREN.UITLEEN_DAT IS NOT NULL;"

Maar dit werkt niet.....hoe kan ik dit doen?


VRAAG 2:

Nu wil ik hier ook een If statement aan toevoegen...
Als Uitleen_dat (datum) langer dan een week geleden, moet hij hem rood laten zien. Hoe kan ik dit het beste doen?


Alvast bedankt voor jullie hulp.

Sander

  • frankvdtillaart
  • Registratie: November 2000
  • Laatst online: 24-05 07:42
misschien:
WHERE TO_CHAR(T_EXEMPLAREN.UITLEEN_DAT, Date, DD-MM-YYY) IS NOT NULL

Maar dan moet je die TO_CHAR() ongetwijfeld anders invullen, dat zul je wel kunnen vinden in de help.

Happy Blessings <3


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Maar dit werkt niet.....hoe kan ik dit doen?
Hoezo dit werkt niet? Wat werkt er dan niet? Welke foutmelding krijg je? Met andere woorden graag wat meer info dan "Het werkt niet" ;)
Nu wil ik hier ook een If statement aan toevoegen...
Als Uitleen_dat (datum) langer dan een week geleden, moet hij hem rood laten zien. Hoe kan ik dit het beste doen?
Dit is met elke taal wel mogelijk. Wat heb je al geprobeerd dan?
Met ASP moet je in ieder geval een eind komen met de functie DateDiff

Maak je gebruik van PHP dan moet je hier maar eens kijken :)

[ Voor 26% gewijzigd door DeverauX op 16-05-2003 10:41 ]

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Verwijderd

Ik zou zelf hebben gekozen voor 2 tabellen, 1 met alle cd's en eentje waarin staat welke uitgeleend zijn, wanneer en aan wie. Dan kan je gewoon alle rows uit die uitleentabel weergeven. Als je toch je eigen manier wilt gebruiken, zou je dit eens kunnen proberen: uitleen_dat <> NULL. Succes

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 09:44

Dido

heforshe

Hoe heb je uitleen_dat gedefinieerd? Kán die wel NULL zijn?

Wat betreft de kleurtjes, dat gaat natuurlijk niet lukken in SQL... maar in een programmeertaal is dat vrij eenvoudig, lijkt me?

Wat betekent mijn avatar?


  • BasSpruit
  • Registratie: September 2002
  • Laatst online: 09-04-2022
het makkelijkste is om er een status "uitgeleend" aan te hangen en die ALTIJD in te vullen. hoef je je geen zorgen te maken over NULL velden. en bij het aanmaken zet je deze op "false" of 0 (hangt er vanaf welke DB je gebruikt)

Verwijderd

Topicstarter
Bedankt allemaal voor de reacties zo snel.

Deveraux: Krijg dan geen foutmelding. Hij wiordt dan gewoon heel traag en dan moet je echt IIS en een service restarten.
Dat DateDiff zal ik ff gaan uitproberen.

Rage2K:
Dat hadden we inderdaad eerst ook, (doe het samen met een collega) en hij had er toen voor gekozen om er 1 tabel van te maken.
Ik zal dat <> NULL ff proberen ook.

Dido: Uitleen_dat mag NULL zijn.

Chaosdream: ik ga eerst bovenstaande proberen en anders probeer ik jou optie.

Nogmaals: bedankt

Verwijderd

Topicstarter
Het laten zien van de exemplaren waar een datum bij staat werkt nu. :-)
Maar dat andere gaat mij ech niet lukken. (Ben niet zo ster daarin.)
Is het een goede mogelijkheid om het in visual basic te doen.

If Uitleen_dat ouder is dan een week
Then Maak hem rood
Else niet
End if

Hoe moet ik dit precies doen?

  • intGod
  • Registratie: Maart 2003
  • Niet online

intGod

Ars non postulat causam

Als je Sql Server gebruikt:

code:
1
2
WHERE 
  isNull(T_EXEMPLAREN.UITLEEN_DAT, '1901-01-01') <> '1901-01-01'

Verwijderd

Topicstarter
IntGod.....sorry...maar wat moet ik hiermee?
Waarschijnlijk mij fout...ik zal het wel beter uitleggen.

De hele query werkt nu goed. (SQL server)
Hij geeft een tabel weer (in ASP) met daarin een ID, Datum (wanneer hij is uitgeleend), persoon, telefoon en pieper.

Nu wil ik als ik deze tabel opvraag, dat hij controleert dat als een datum ouder is dan een week (dus als hij langer dan een week is uitgeleend) hij die datum rood maakt.

En dat kan ik denk ik het beste doen in visual basic.
Dus met If ... Then...Else ..End If.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

'k zou iig dan kijken naar een door asp ondersteunde taal, zoals vbscript. deze kent een datediff functie.

en ja, de if-then statement moet je gebruiken. :)

[ Voor 27% gewijzigd door gorgi_19 op 16-05-2003 12:37 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 22-08 23:22

The Eagle

I wear my sunglasses at night

Als je toevallig op de Haagse Hogeschool zit zou ik es ff kijken in de bibliotheek...ik heb daar eens een scriptie gelezen over iets dergelijks (alleen was dat een uitleensysteem voor videobanden op de Ichtus hogeschool, maar principe lijkt me het zelfde)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


Verwijderd

Topicstarter
Gorgi:
Uit die datediff functie word ik nix wijzer.
Maar dat zal wel aan mij liggen :-)

The_Eagle: Ik zit niet toevallig daar op school.
Ik ga er misschien wel volgend jaar heen.
Doe nu informatica MBO Laatste jaar.

  • Frostbite
  • Registratie: Juni 2001
  • Laatst online: 03-08 11:56

Frostbite

🤦🏻‍♂️

Zou eens ff idd naar de bieb gaan en eens een aantal sql boekjes doorspitten.
Daar staan vast meerdere registratie/ uitleen systemen in vermeld met voorbeeld codes.

edit:
Lees net dat je het laatste jaar van Mbo doet dus dan moet je sql inmiddels wel onder de knie hebben :/

[ Voor 27% gewijzigd door Frostbite op 16-05-2003 12:40 ]

🎮 Steam
💻AMD 9800X3D
📱 Samsung Galaxy S25+


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Sc0rPi0N schreef op 16 May 2003 @ 12:39:
Zou eens ff idd naar de bieb gaan en eens een aantal sql boekjes doorspitten.
Daar staan vast meerdere registratie/ uitleen systemen in vermeld met voorbeeld codes.

edit:
Lees net dat je het laatste jaar van Mbo doet dus dan moet je sql inmiddels wel onder de knie hebben :/
't is een presentatieprobleem, voor zover ik zie. Hij wil alle data hebben, maar alleen de data waarbij het verschil groter is dan een week, moet rood weergegeven worden.

Aangezien beide data in een tabel gedaan worden, is het dus een presentatieprobleem. Dit moet je dan ASP 'laten oplossen.'
Zie trouwens: http://www.haneng.com/FunctionSearch.asp?s=DateDiff

Nog een tip: Kijk ook eens op Google. ASP + functienaam moet een hoop helpen. :)

[ Voor 7% gewijzigd door gorgi_19 op 16-05-2003 12:43 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Antediluvian
  • Registratie: Maart 2002
  • Laatst online: 22-06 10:58
Die if is makkelijk

bv in asp

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%
dim rs, con, strSQL

con.open .... hier je connectiestring ......
strSQL = ......  hier je select string ......
rs.Open strSQL, con, adOpenStatic, adLockReadOnly
%>
<table>
     <% do until rs.eof %>
     <tr style="background:
         <%if (rs("uitleendat")-now())>0 then%>
                #000000;"
         <% else %>
                 #FF0000;"
         <% end if %>
      >
         <td><%=rs.field(0)%></td>
         <td><%=rs.field(1)%></td>
         <td><%=rs.field(2)%></td>
             .....
     </tr>
      <%loop%>
</table>

Verwijderd

Topicstarter
[quote
't is een presentatieprobleem, voor zover ik zie. Hij wil alle data hebben, maar alleen de data waarbij het verschil groter is dan een week, moet rood weergegeven worden.

Nog een tip: Kijk ook eens op Google. ASP + functienaam moet een hoop helpen. :)[/quote]


Klopt en zal is kijken.

Ik ben nu niet meer op m'n stage, maar maandag zal ik die If functie die je geeft is proberen.
Pagina: 1