我有这个Oracle查询,它使用两个子查询来获取特定日期的项目数。
$s = simplexml_load_file('data.xml');
var_dump($s->versions);
这里的两个子查询是count_units和count_available_units。重要的是我按to_char([date],[date format])进行分组,否则它将按日期和时间分组,而不仅仅是日期。当我按 SELECT to_char(u.expiration_date,'DD/MM/YYYY') expiration_date
,(SELECT SUM(u.base_quantity)
FROM unit u
,item i
WHERE i.item_id = u.item_id
AND (i.item_code = 50002844 OR
i.item_id = 50002844)
AND to_char(u.expiration_date,'DD/MM/YYYY') =
count_units.expiration_date) AS quantity
,count_units.unit_count
,count_available_units.available_unit_count
FROM unit u
,(SELECT to_char(u.expiration_date,'DD/MM/YYYY') AS expiration_date
,COUNT(*) AS unit_count
FROM unit u
,item i
WHERE (u.item_id = 50002844 OR
i.item_code = 50002844)
AND u.item_id = i.item_id
AND u.base_quantity > 0
GROUP BY to_char(u.expiration_date,'DD/MM/YYYY')) count_units
,(SELECT to_char(u.expiration_date,'DD/MM/YYYY') AS expiration_date
,COUNT(*) AS available_unit_count
FROM unit u
,item i
WHERE (u.item_id = 50002844 OR
i.item_code = 50002844)
AND u.item_id = i.item_id
AND u.status_id = 10
AND u.base_quantity > 0
GROUP BY to_char(u.expiration_date,'DD/MM/YYYY')) count_available_units
WHERE count_units.expiration_date = to_char(u.expiration_date,'DD/MM/YYYY')
AND count_available_units.expiration_date = to_char(u.expiration_date,'DD/MM/YYYY')
分组时,查询返回结果,但现在运行时我收到“无效数字”错误。
我的问题是为什么我收到此错误?我在查询中没有看到任何地方尝试将char转换为数字,反之亦然。
此外,这两个子查询本身返回时没有错误,所以它必须是我要查询的一些标准。
任何想法都表示赞赏。感谢