Oracle11g 获取联接表的计数

Oracle11g 获取联接表的计数,oracle11g,Oracle11g,我有两个表(oracle): (我已在列名前用星号标记主键) 表1列为: *日期, *代码, *符号, 价格, 重量 表2列为: *descriptionID 代码 符号 日期 描述 我需要通过查询找到以下信息 对于特定日期的给定代码和符号,是否有任何描述。 例如:表1中的2012-4-1上的code=“AA”和symbol=“TEST”=>表2中是否至少有一行像ID=、code=“AA”、symbol=“TEST”、date=2012-4-1 我尝试了以下查询: select * from T

我有两个表(oracle): (我已在列名前用星号标记主键)

表1列为:
*日期,
*代码,
*符号,
价格,
重量

表2列为:
*descriptionID
代码
符号
日期
描述

我需要通过查询找到以下信息

对于特定日期的给定代码和符号,是否有任何描述。
例如:表1中的2012-4-1上的code=“AA”和symbol=“TEST”=>表2中是否至少有一行像ID=、code=“AA”、symbol=“TEST”、date=2012-4-1

我尝试了以下查询:

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


有人能给我建议一个可以实现上述输出的查询。

我不明白您为什么需要加入:

SELECT count(*)
FROM Table2 
WHERE code='AA'
AND symbol = 'TEST'
AND date = to_date('2012-04-01', 'yyyy-mm-dd')

更新:(阅读您的评论后)
我还是不明白你为什么需要加入。您需要表1中的一些数据吗?
无论如何,如果您想要所有(代码、符号、日期)的计数,为什么不按分组?
至于日期,最好使用
trunc
来去除时间部分。
因此:

Trunc()
方法接受一个字符串\Date输入并创建一个如下格式的日期输出:“DD\MM\YYYY”。
所以它应该完全符合您的要求。

您准备好回答了吗?在您的查询中,您有
TO_CHAR(t1.date,'YYYY/MM/DD')=TO_CHAR(t1.date,'YYYY/MM/DD')
为什么要转换为字符串?右边(左边)不是应该是t2吗?我的意思是,为什么不干脆
t1.date=t2.date
我需要表1中所有项目的描述计数。不仅仅针对code=“AA”、symbol=“TEST”。这就是jst的一个例子。这就是我使用join的原因。以上述方式使用计数(*),仅给出AA-TEST-2012-04-01的描述计数。我不能只使用t1.date=t2.date,因为t1.date有时间参数,t2.date只有yyyyymmdd。我只需要比较日期部分。我需要一个查询,它将给出表1中每个唯一代码符号日期项的描述计数。@user1308004-我更新了我的答案,至于可以这样做的日期:
trunc(t1.date)=trunc(t2.date)
SELECT code, symbol, date, count(*)
FROM Table2
GROUP BY code, symbol, date