MSSQL: Verschil in dagen
Mijn query:
Code (php)
1
2
3
2
3
SELECT tblSites.[Naam GPT], [MijnGPT-verdiensten].Geupdate
FROM tblSites INNER JOIN [MijnGPT-verdiensten] ON tblSites.pkSiteID = [MijnGPT-verdiensten].pkSiteID
WHERE [MijnGPT-verdiensten].Geupdate < DATE_SUB( DATE(), INTERVAL 7 DAY)
FROM tblSites INNER JOIN [MijnGPT-verdiensten] ON tblSites.pkSiteID = [MijnGPT-verdiensten].pkSiteID
WHERE [MijnGPT-verdiensten].Geupdate < DATE_SUB( DATE(), INTERVAL 7 DAY)
De relevante tabellen ('MySQL-stijl'):
CREATE TABLE `mijngpt` (
`pkGPTid` tinyint(11) unsigned NOT NULL auto_increment,
`naamGPT` tinyint(3) unsigned NOT NULL default '0',
`saldo` decimal(8,4) default NULL,
`punten` decimal(15,4) default NULL,
`referrals` tinyint(3) unsigned default NULL,
`uitbetaald` enum('0','1') default '0',
`aantaluitbetaald` tinyint(3) unsigned default NULL,
`uitbetaling` decimal(10,4) default NULL,
`refurl` varchar(255) default NULL,
`cijfer` tinyint(3) unsigned default NULL,
`promotie` enum('0','1') default '0',
`vakantie` enum('0','1') default '0',
`geupdate` datetime default NULL,
`opmerkingen` longtext,
PRIMARY KEY (`pkGPTid`)
) TYPE=MyISAM COMMENT='MijnGPT''s';
CREATE TABLE `tblsites` (
`pkSiteID` bigint(21) unsigned NOT NULL auto_increment,
`NaamGPT` varchar(255) NOT NULL default '',
`taal` varchar(50) default NULL,
`URL` varchar(255) default NULL,
`banner_1` varchar(255) default NULL,
`banner_2` varchar(255) default NULL,
`banner_3` varchar(255) default NULL,
`banner_4` varchar(255) default NULL,
`banner_5` varchar(255) default NULL,
`banner_6` varchar(255) default NULL,
`eigen` varchar(255) default NULL,
`aanmeldbonus` decimal(5,2) default NULL,
`uitbetaalgrens` varchar(25) default NULL,
`centpermail` decimal(3,1) default NULL,
`aantalmails` tinyint(3) unsigned default NULL,
`refcredit` varchar(25) default NULL,
`reflevels` tinyint(3) unsigned default NULL,
`bubble` varchar(15) default NULL,
`cijfer` tinyint(3) unsigned default NULL,
`waardering` varchar(10) default NULL,
`ervaring` longtext,
`bank` enum('0','1') default '0',
`paypal` enum('0','1') default '0',
`e_gold` enum('0','1') default '0',
`check` enum('0','1') default '0',
`fgh50` enum('0','1') default '0',
`fgh100` enum('0','1') default '0',
`SMS` enum('0','1') default '0',
`chat` enum('0','1') default '0',
`18plus` enum('0','1') default '0',
`scam` enum('0','1') default '0',
`afgekeurd` enum('0','1') default '0',
`webmaster` enum('0','1') default '0',
`systeem` varchar(10) default NULL,
`opmerkingen` longtext,
PRIMARY KEY (`pkSiteID`)
) TYPE=MyISAM COMMENT='GPT-sites';
Access heeft een iets andere interpretatie van sql.
Wie kan me een eindje op weg helpen?
EDIT:
de db is hier (of hier) te vinden
Gewijzigd op 01/01/1970 01:00:00 door John de Boer
ik kan je niet helpen met mssql, maar ik kan je wel vertellen dat deze database niet geoptimaliseerd is, waarschijnlijk is deze al geimplementeerd in een applicatie, dus veranderen zal niet zo makkelijk meer gaan. Maar ik zou je als ik jou was zeker eens verdiepen in optimaliseren.
In welk opzicht is die niet genormaliseerd volgens jou?
(je moet niet teveel kijken naar de 'MySQL-stijl', ik heb het erbij gezet om een idee te krijgen. en bovendien heb ik het niet complete tabel-overzicht erin gezet.)
Gewijzigd op 01/01/1970 01:00:00 door John de Boer
Het eerste argument geeft het interval aan (in dit geval dagen), het tweede en derde argument moeten van het type date of datetime zijn.
Code (php)
1
2
3
4
2
3
4
SELECT tblSites.[Naam GPT], tblSites.URL, [MijnGPT-verdiensten].Saldo, [MijnGPT-verdiensten].Punten, [MijnGPT-verdiensten].Geupdate, DateDiff("d",[MijnGPT-verdiensten].[Geupdate],Now()) AS Verschil
FROM tblSites INNER JOIN [MijnGPT-verdiensten] ON tblSites.pkSiteID = [MijnGPT-verdiensten].pkSiteID
WHERE (((DateDiff("d",[MijnGPT-verdiensten].[Geupdate],Now()))>=7))
ORDER BY DateDiff("d",[MijnGPT-verdiensten].[Geupdate],Now()) DESC , [MijnGPT-verdiensten].Geupdate DESC;
FROM tblSites INNER JOIN [MijnGPT-verdiensten] ON tblSites.pkSiteID = [MijnGPT-verdiensten].pkSiteID
WHERE (((DateDiff("d",[MijnGPT-verdiensten].[Geupdate],Now()))>=7))
ORDER BY DateDiff("d",[MijnGPT-verdiensten].[Geupdate],Now()) DESC , [MijnGPT-verdiensten].Geupdate DESC;
Gewijzigd op 01/01/1970 01:00:00 door John de Boer