0
我需要創建一個查詢以基於日期間隔返回N行。這很簡單,但我不能夠:/MySQL根據日期間隔返回N行
的基本查詢:
SELECT
f.many_fields
FROM
tb_foo f
WHERE
f.id_foo = 14
此查詢返回基於我的ID 1列。 但是,我在'2012-10-30'上應用了這個查詢的日期間隔爲'2012-10-10',最後根據日期間隔的差異返回了20個基本查詢。
可以做到這一點嗎?
SELECT
f.many_fields,
bar.*
FROM
tb_foo f,
(SELECT x FROM dual limit DATEDIFF('2012-10-10','2012-10-30')) bar
WHERE
f.id_foo = 14
房地產查詢:
SELECT
m.id_matricula,
a.nome
FROM
tb_matricula m
inner join tb_aluno a on (a.id_aluno = m.id_matricula)
WHERE
m.id_matricula = 14
開始日期= 2012年10月10日 結束日期=二○一二年十月三十○日
我會用在iReport的這個結果建立一個網格與基於這些日期之間的差異的行數。
實例建立在谷歌搜索:
SELECT
CONCAT(dt.d ,'-' ,days.d) AS dates
FROM
(
SELECT
CONCAT(a1 ,b1) AS d
FROM
(
SELECT
'0' AS a1
UNION ALL SELECT
'1'
UNION ALL SELECT
'2'
UNION ALL SELECT
'3'
) a JOIN(
SELECT
'0' AS b1
UNION ALL SELECT
'1'
UNION ALL SELECT
'2'
UNION ALL SELECT
'3'
UNION ALL SELECT
'4'
UNION ALL SELECT
'5'
UNION ALL SELECT
'6'
UNION ALL SELECT
'7'
UNION ALL SELECT
'8'
UNION ALL SELECT
'9'
) b
WHERE
CONVERT(
CONCAT(a1 ,b1) ,
UNSIGNED
) <=(
SELECT
DAY(
CONCAT('2012-10' ,'-01') + INTERVAL 1 MONTH - INTERVAL 1 DAY
)
)
AND CONCAT(a1 ,b1) <> '00'
) days JOIN(
SELECT
'2012-10' AS d
) dt
HAVING
dates BETWEEN '2012-10-02' AND '2012-10-05'
ORDER BY
dates
;
當你說日期間隔,你兩個特定日期之間是什麼意思?你想要的結果集是什麼?添加一個你理想的輸出結果的例子。 – Ray
顯示您的表格結構 – Justin
當您實際上在兩個日期之間查找記錄時,「f.id_foo = 14」有什麼意義?或者那個ID值有很多記錄? – nawfal