Toon posts:

SQL - meer resultaten geven dan aantal records

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met het volgende SQL probleem:
ik wil een tabel maken voor uitzendingen van een gids. Ik weet de Titel, de dag waarop het uitgezonden wordt en het tijdstip. Nu wil ik een tabel maken met alle uitzendingen dit jaar en de datum erachter (dus 52 records weergeven terwijl ik er oorspronkelijk 1 had).
Ik gebruik Access (en post hier omdat hier de meeste SQL vragen staan)
Is dit mogelijk?

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

gorgi_19

Kruimeltjes zijn weer op :9

Ja, een join gebruiken? :?
* gorgi_19 snapt er eigenlijk niets van wat je wilt..
Je hebt alle data in je database staan?

[ Voor 65% gewijzigd door gorgi_19 op 02-04-2003 17:12 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Ik snap werkelijk niet wat je wil en als ik wel snap wat je wil, snap ik niet wat er niet lukt...

Je kunt iig uit vrijwel geen enkele database gegevens halen die er niet inzitten, dus daar zal je omheen moeten scripten ofzo.

  • simon
  • Registratie: Maart 2002
  • Laatst online: 21-08 13:41
Bedoel je niet data ouput limiteren?

|>


Verwijderd

Het is duidelijk:

Hij heeft een record:
naam tijdstip
---------------------------------
Ally McBeal dinsdag 20.00u

En nu wil hij als output:

week1 - ally McBeal - dinsdag 20.00u
week2 - ally McBeal - dinsdag 20.00u
week3 - ally McBeal - dinsdag 20.00u
week4 - ally McBeal - dinsdag 20.00u
etc...


of:

03-01-2003 - ally McBeal - dinsdag 20.00u
10-01-2003 - ally McBeal - dinsdag 20.00u
17-01-2003 - ally McBeal - dinsdag 20.00u
24-01-2003 - ally McBeal - dinsdag 20.00u
etc.

[ Voor 23% gewijzigd door Verwijderd op 02-04-2003 17:16 ]


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

gorgi_19

Kruimeltjes zijn weer op :9

Maar heeft hij die data nu al in zijn database staan?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Ik bedoel idd wat IntroV schijft

  • TimMer
  • Registratie: Februari 2000
  • Niet online
Dat wordt een join volgens mij...

  • TweakerNummer
  • Registratie: September 2001
  • Niet online
Van de MySQL tutorial:
How can I find this month, second Wednesday's date?

SET @First = CONCAT(EXTRACT(YEAR_MONTH FROM (DATE_ADD(CURRENT_DATE,INTERVAL 1 MONTH))),"01");
SELECT DATE_ADD(@First,INTERVAL (11 + (7 * (DAYOFWEEK(@First) > 4)) - DAYOFWEEK(@First)) DAY);
Er zijn veel handigere manieren BTW. Ow ja, nog vergeten te zeggen, je zal zelf een beetje de query moeten modden.

[ Voor 14% gewijzigd door TweakerNummer op 02-04-2003 17:24 ]


  • R4NCOR
  • Registratie: December 2000
  • Laatst online: 21-08 16:59

R4NCOR

eigenlijk gewoon Niels

Ik snap niet wat er niet lukt?

Laat eens zien wat je al hebt (geprobeerd)?

Verwijderd

Topicstarter
Het probleem is vooral dat het niet lukt om meer records weer te geven dan er daadwerkelijk zijn. de datums staan namelijk niet in de database. ik weet alleen dat het programma een heel jaar lang, op de zelfde dag en hetzelfde tijdstip uitgezonden wordt.

Ik heb idd niet alle datums die bestaan in de database gezet. dit zou het probleem wel heel simpel oplossen, maar het zou mijn positie binnen het bedrijf mischien in gevaar brengen :9

[ Voor 27% gewijzigd door Verwijderd op 02-04-2003 17:30 ]


Verwijderd

Dit zal je niet uit alleen uit een query krijgen, tenzij je een tabel wil vullen met alle mogelijk data (als in: meer dan 1 datum) binnen een gewenste range. Je zult wat code moeten schrijven om de query heen.

Hint;
Je zult een bepaalde start- en einddatum moeten opgeven, aangezien je niet een oneindige output wil hebben. Zoek daarna de datum van de eerste gezochte dag (bijv. dinsdag) op die valt na de startdatum. Vanaf dan kan je met datumrekenfuncties er telkens 7 dagen bij optellen totdat je bij je einddatum bent.

Er zijn verschillende datumfuncties die dit alllemaal kunnen in Access, kijk dus even in de Help.

Succes :)

[ Voor 51% gewijzigd door Verwijderd op 02-04-2003 17:39 ]


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
datum hoeft toch ook niet perse uit de db te komen??? data zijn toch gewoon date_add(now(),interval 1 week)????

Of snap ik het nu niet.

  • TweakerNummer
  • Registratie: September 2001
  • Niet online
Dat klopt. Met

select DATE_FORMAT(DATE_ADD(current_date, INTERVAL (OFFSET + 7 * X ) DAY),'%W %D %M')

ga je al een heel eind in de goede richting.

Verwijderd

Topicstarter
Ik heb een tijdje wat uitgeprobeerd in access met datums maar de bovenstaande functie krijg ik niet aan de praat. Wat ik eigenlijk wil is dus een lijstje kunnen generen met bijvoorbeeld alle (52) dinsdagen van 2003. dus:

7-1-2003
14-1-2003
21-1-2003
28-1-2003
enz.

Verwijderd

In Oracle (ik weet dat het mysql is, maar dat is misschien makkelijker zoeken) is het een kwestie van de sysdate even omzetten naar de juiste formaat (dagnummer, datum, whatever) en dan een klein loopje maken die elke keer de juiste sysdate + 7 genereerd. Lijkt mij niet zo moeilijk, zelfs niet onder mysql....... })

Verwijderd

Topicstarter
Kun je loopjes maken in SQL?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

In SQL? Nee.
In stored procedures/functions? Ja.
Of Access dat aankan? Weet ik niet.

Wat te doen als het dat niet aan kan, er omheen programmeren en de loop-code in je clientcode uitvoeren ipv alles in SQL proberen te stoppen.

Funkypie: sinds wanneer is access hetzelfde als mysql :?

[ Voor 12% gewijzigd door ACM op 03-04-2003 12:42 ]

Pagina: 1