SELECT t.id
, t.code
, t.uploaddt
, t.cp
, t.name
, t.date
FROM ( SELECT code
, MAX(date) AS max_date
FROM daTable
GROUP
BY code ) AS m
INNER
JOIN daTable AS t
ON t.code = m.code
AND t.date = m.max_date
Now I need count recordset in the table.
I try this but I have error, can you help me?
SELECT t.id
, t.code
, t.uploaddt
, t.cp
, t.name
, t.date
FROM ( SELECT code
, MAX(date) AS max_date
, COUNT(date) AS cnt
FROM daTable
GROUP
BY code ) AS m
INNER
JOIN daTable AS t
ON t.code = m.code
AND t.date = m.max_date
SELECT t.id
, t.code
, t.uploaddt
, t.cp
, t.name
, t.date
, t.CNT
FROM ( ... ) AS m
INNER
JOIN daTable AS t
ON t.code = m.code
AND t.date = m.max_date
Response with:
[MySQL][ODBC 5.1 Driver][mysqld-5.0.45-community-nt]Unknown column ‘t.CNT’ in ‘field list’
or count per code? if this, then you simply must take the time to understand what i have been trying to teach you, rather than just demanding an answer
SELECT t.id
, t.code
, t.uploaddt
, t.cp
, t.name
, t.date
, COUNT(date) AS cnt
FROM ( SELECT code
, MAX(date) AS max_date
, COUNT(date) AS cnt
FROM daTable
GROUP
BY code ) AS m
INNER
JOIN daTable AS t
ON t.code = m.code
AND t.date = m.max_date
MySQL][ODBC 5.1 Driver][mysqld-5.0.45-community-nt]Mixing of GROUP columns (MIN(),MAX(),COUNT(),…) with no GROUP columns is illegal if there is no GROUP BY clause
SELECT t.id
, t.code
, t.uploaddt
, t.cp
, t.name
, t.date
, COUNT(date) AS cnt
FROM ( SELECT code
, MAX(date) AS max_date
, COUNT(date) AS cnt
FROM daTable
GROUP
BY code ) AS m
INNER
JOIN daTable AS t
ON t.code = m.code
AND t.date = m.max_date
GROUP
BY code
Many thanks for your help.
I write two queries and working.
Query 1:
SELECT t.id
, t.code
, t.uploaddt
, t.cp
, t.name
, t.date
FROM ( SELECT code
, MAX(date) AS max_date
FROM daTable
GROUP
BY code ) AS m
INNER
JOIN daTable AS t
ON t.code = m.code
AND t.date = m.max_date
Query 2:
SELECT
COUNT(date) AS cnt
FROM ( SELECT code
, MAX(date) AS max_date
, COUNT(date) AS cnt
FROM daTable
GROUP
BY code ) AS m
INNER
JOIN daTable AS t
ON t.code = m.code
AND t.date = m.max_date
alternatively, if you are using an application language like php, you don’t even need a second query, just use mysql_num_rows (or the equivalent) after the first query
SELECT
COUNT(DISTINCT code)
FROM ( SELECT code
, MAX(date) AS max_date
, COUNT(DISTINCT code)
FROM daTable
GROUP
BY code ) AS m
INNER
JOIN daTable AS t
ON t.code = m.code
AND t.date = m.max_date
[MySQL][ODBC 5.1 Driver][mysqld-5.0.45-community-nt]Column ‘code’ in field list is ambiguous
Well, that message is quite clear, isn’t it? The column name ‘code’ is ambiguous, because it exists in both tables. You’ll have to specify which of the two ‘code’ columns you want to count: t.code or m.code.
I’am sorry I dont understand your suggestion… now working
Query 1:
SELECT t.id
, t.code
, t.uploaddt
, t.cp
, t.name
, t.date
FROM ( SELECT code
, MAX(date) AS max_date
FROM daTable
GROUP
BY code ) AS m
INNER
JOIN daTable AS t
ON t.code = m.code
AND t.date = m.max_date