我有两个表(甲骨文):(我在列名前用星星标记了主键)
Table1列如下:
\*date, \*code, \*symbol, price, weight Table2列如下:
\*descriptionID code symbol date description我需要通过查询找到以下信息,
对于特定日期的给定代码和符号,是否有任何描述。
例如:表1中代码= "AA“和符号="TEST”,表1中的=>至少有一行类似于ID=,代码="AA",符号=“测试”,日期= 2012-4-1在表2中。
我尝试使用以下查询:
select * from Table1 t1 INNER JOIN
Table2 t2
on t1.code = t2.code and t1.symbol = t2.symbol and
TO_CHAR(t1.date, 'YYYY/MM/DD') = TO_CHAR(t1.date, 'YYYY/MM/DD')但它并没有给我这样的输出:
代码= AA,符号=测试,日期为2012-4-1 =>描述计数= 10
代码= AA,符号=测试,日期为2012-4-2 =>描述计数=5
代码= BB,符号= HELO,日期为2012-4-1 =>描述计数= 20
有人能建议我一个能实现上述输出的查询吗?
发布于 2012-04-02 12:49:24
我不明白你为什么要加入:
SELECT count(*)
FROM Table2
WHERE code='AA'
AND symbol = 'TEST'
AND date = to_date('2012-04-01', 'yyyy-mm-dd')更新:(在阅读您的评论后)
我还是不明白你为什么要加入。您需要来自table1的数据吗?
无论如何,如果您想要所有(代码,符号,日期)的计数,那么为什么不分组呢?
至于日期,最好使用trunc去除时间部分。
所以:
SELECT code, symbol, date, count(*)
FROM Table2
GROUP BY code, symbol, date发布于 2016-03-29 08:20:19
Trunc()方法接受字符串\ DATE输入,并创建一个以这种格式表示的日期输出:"DD\MM\YYYY“。所以它应该能做你想做的。
https://stackoverflow.com/questions/9976452
复制相似问题