Koppelen
Beide query's zijn hetzelfde (op de tabel na die geselecteerd wordt).
####################################################
select CAST(dag as varchar(2)) + '-' + CAST(maand as varchar(2)) + '-' + CAST(jaar as varchar(4)) as DatumControle, Totaal, Uitvoerder from
(
SELECT TOP(1000000000) datepart(day,datumcontrole) AS dag, datepart(month,datumcontrole) AS maand,datepart(year,datumcontrole) AS jaar, Totaal, Uitvoerder FROM Bewakingsdiensten WHERE ID in (select ID from
(select dbo.dateonly(datumcontrole) as Datum,max(id) as ID from bewakingsdiensten
group by dbo.dateonly(datumcontrole)) as maxIDs
)
ORDER BY jaar desc, maand desc, dag desc
) AS t1
---------------------------------------------------------------------------
select CAST(dag as varchar(2)) + '-' + CAST(maand as varchar(2)) + '-' + CAST(jaar as varchar(4)) as DatumControle, Totaal, Uitvoerder from
(
SELECT TOP(1000000000) datepart(day,datumcontrole) AS dag, datepart(month,datumcontrole) AS maand,datepart(year,datumcontrole) AS jaar, Totaal, Uitvoerder FROM alarmopvolging WHERE ID in (select ID from
(select dbo.dateonly(datumcontrole) as Datum,max(id) as ID from alarmopvolging
group by dbo.dateonly(datumcontrole)) as maxIDs
)
ORDER BY jaar desc, maand desc, dag desc
) AS t2
Gewijzigd op 09/11/2010 09:35:16 door Wouter OOP
Gebruik gewoon een DATE of DATETIME veld.
Heb ik toch :)
Ik kom er i.i.g. niet zo 1,2,3, uit
SELECT DatumControle, Totaal, Uitvoerder FROM Bewakingsdiensten WHERE ID in (select ID from
(select dbo.dateonly(datumcontrole) as Datum,max(id) as ID from bewakingsdiensten
group by dbo.dateonly(datumcontrole)) as maxIDs
)
order by DatumControle desc
-----------------------------------------------------------------------
SELECT DatumControle, Totaal, Uitvoerder FROM alarmopvolging WHERE ID in (select ID from
(select dbo.dateonly(datumcontrole) as Datum,max(id) as ID from alarmopvolging
group by dbo.dateonly(datumcontrole)) as maxIDs
)
order by DatumControle desc
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SELECT
DatumControle,
Totaal,
Uitvoerder
FROM
Bewakingsdiensten
WHERE
ID in (
select
ID
from
(
select
dbo.dateonly(datumcontrole) as Datum,
max(id) as ID
from
bewakingsdiensten
group by
dbo.dateonly(datumcontrole)
) as maxIDs
)
order by
DatumControle desc
DatumControle,
Totaal,
Uitvoerder
FROM
Bewakingsdiensten
WHERE
ID in (
select
ID
from
(
select
dbo.dateonly(datumcontrole) as Datum,
max(id) as ID
from
bewakingsdiensten
group by
dbo.dateonly(datumcontrole)
) as maxIDs
)
order by
DatumControle desc
Eerder zoiets ...
Als het goed is het je alles opgeslagen als DATE ... Daar kan je gewoon op koppelen dan zonder rare poespas ... Dus gewoon date1 = date2
Gewijzigd op 09/11/2010 14:34:18 door P Widdershoven
Maar de datums die worden ingevoerd zijn op seconden nauwkeurig.
Hiermee bedoel ik dat er meerdere datums ingevuld kunnen zijn:
09-11-2010 15:15:35
09-11-2010 15:15:48 <---- die wordt eruit gehaald
Dit wordt ook bij de tweede gedaan.
Daarna moeten die velden met mekaar vergeleken worden zonder uur, minuut en seconden.
Dus alleen 09-11-2010.
In het kort: de laatste tijd van een datum wordt eruit gehaald van beide tabellen en die moeten worden gekoppeld aan mekaar.
EDIT: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html alle date en time functies van mysql :)
Gewijzigd op 09/11/2010 15:09:19 door P Widdershoven
P Widdershoven op 09/11/2010 14:33:54:
Dus gewoon date1 = date2
DATE(date1) = DATE(date2)