我要做的是从特定年份(例如:2017年)的两个表格中检索月份的不同值以及特定ID(请注意,table1将年份和月份作为单独的字段,而table2将完整日期作为单个字段)
我写了这个查询:
SELECT DISTINCT month
FROM table1
JOIN table2
ON table1.month = table2.(to_char(date,'mm'))
WHERE table1.year=2017
AND id=406;
我收到此错误:
ORA-01747: invalid user.table.column, table.column, or column specification
01747. 00000 - "invalid user.table.column, table.column, or column specification"
对于场景,table1包含一个pay元素,table2包含另一个pay元素,一个员工可以在同一个月同时拥有一个条目,或者在其中一个表中有一个唯一条目另一个月,问题是我需要计算12个月支付的月数(我不希望重复同一个月)
答案 0 :(得分:2)
Alias将进入函数调用。
你可能想要:
mFirebaseInstance.getReference("users").addValueEventListener(new
ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot dst : dataSnapshot.getChildren()){
//Key stores KjfLmUnPUaWeYDETp04 and PlamHmUnPUaWeYDETp04
String key = dst.getKey();
}
}
@Override
public void onCancelled(DatabaseError error) {
}
});
此外,使用简短有意义的别名来提高可读性。
答案 1 :(得分:1)
尝试以下查询。请注意,按日期加入两个表应该要比较两者年份和月份。
select distinct t1.month
from table1 t1
inner join table2 t2
on t1.month = to_char(t2.date, 'mm') and
t1.year = to_char(t2.date, 'yyyy')
where t1.year = 2017 and
id = 406;
您应该更改表格设计,而不是将日期,月份和年份存储在单独的列中。