02. oktober 2002 - 10:40Der er
13 kommentarer og 1 løsning
Dato query
Er der ikk' en der kan lave en query på baggrund af disse to tabeller
------------------
log1 log1_index PK log1_datetime
------------------
log2 log2_index PK log2_log1_index FK log2_url
------------------
log2_log1_index er foreing key til log1_index
Jeg skal bruge en query der tæller antalet af log1_index, samt antallet af log2_url, hvor log1_datetime er imellem datofra og datotil (2 variabler af dato format)
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
I have done that, but it returns an empty recordset...? If I try to write out the tables independant of each other, it is very obvious that there's a match, and that the recordset shouldn't be empty.
I have tried..... ------------------ 1 SELECT SUM(log1.log_ip) AS ips FROM log1 INNER JOIN log2 ON log1.log1_index = log2.log1_index WHERE (log1.log1_datetime BETWEEN #30/09/2002# AND #02/10/2002#) GROUP BY log1.log_ip ------------------ 2 SELECT SUM(log1.log1_count) AS ips FROM log1 INNER JOIN log2 ON log1.log1_index = log2.log1_inndex WHERE (log1.log1_datetime BETWEEN 30/09/2002 AND 02/10/2002) GROUP BY log1.log1_ip ------------------ 3 SELECT SUM(log1.log1_count) AS ips FROM log1 INNER JOIN log2 ON log1.log1_index = log2.log1_inndex WHERE (log1.log1_datetime BETWEEN #09/30/2002# AND #10/02/2002#) GROUP BY log1.log1_ip ------------------ 4 SELECT SUM(log1.log1_count) AS ips FROM log1 INNER JOIN log2 ON log1.log1_index = log2.log1_inndex WHERE (log1.log1_datetime BETWEEN 09/30/2002 AND 10/02/2002) GROUP BY log1.log1_ip ------------------ 5 SELECT SUM(log1.log1_count) AS ips FROM log1 INNER JOIN log2 ON log1.log1_index = log2.log1_inndex WHERE (log1.log1_datetime BETWEEN #09/30/2002 00:00:01# AND #10/02/2002 11:59:59#) GROUP BY log1.log1_ip ------------------ 6 SELECT SUM(log1.log1_count) AS ips FROM log1 INNER JOIN log2 ON log1.log1_index = log2.log1_inndex WHERE (log1.log1_datetime BETWEEN 09/30/2002 00:00:01 AND 10/02/2002 11:59:59) GROUP BY log1.log1_ip ------------------ 7 SELECT SUM(log1.log1_count) AS ips FROM log1 INNER JOIN log2 ON log1.log1_index = log2.log1_inndex WHERE (log1.log1_datetime BETWEEN #30/09/2002 00:00:01# AND #02/10/2002 11:59:59#) GROUP BY log1.log_ip ------------------
Number 2 and 4 returns a empty recordset, and the others fail
SELECT SUM(log1.log1_count) AS ips FROM log1 INNER JOIN log2 ON log1.log1_index = log2.log1_inndex WHERE (log1.log1_datetime BETWEEN '30/09/2002 00:00:00' AND '02/10/2002 23:59:59') GROUP BY log1.log1_ip
The conversion of a char data type to a datatime type resulted in a out-of-range datatime value.
but....
This one almost worked....
SELECT SUM(log1.log1_ip) AS ips FROM log1 INNER JOIN log2 ON log1.log1_index = log2.log1_index WHERE (log1.log1_datetime BETWEEN '09/30/2002 00:00:00' AND '10/02/2002 23:59:59') GROUP BY log1.log1_ip
Except it returned ips = 8 (and there's only 1 ipaddress in the tables, so the grouping didn't work)?
In ACCESS this would work BETWEEN #09/30/2002 00:00:00# AND #10/02/2002 23:59:59# In SQL Server this would work BETWEEN '09/30/2002 00:00:00' AND '10/02/2002 23:59:59' I cant see why this deosnt fail! BETWEEN 09/30/2002 AND 10/02/2002
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.