在本网站上的上一个问题上获得了一些很好的帮助。 我是sql的新手并试图了解这个问题。 从表Tourenstatistik我将获得具有日期和时间的独特数据行。 ID。 然后我查看另一个表Vtsbreak并总结每个id在不同日期的持续时间,因为在同一日期可能有多个条目用于相同的id。 然后,我想在一个名为duration的列中返回该总和,用于唯一ID&它的约会对象。
我还需要为查询指定开始日期和结束日期。
我找到了类似的东西,但我无法让它发挥作用 出现错误ORA-00933:SQL命令未正确结束。
有什么建议吗?
Select
Tourenstatistik.DATUM "Date",
Tourenstatistik.MITARBEITER "ID",
VtsPause.Duration
From
Tourenstatistik
Where Tourenstatistik.DATUM >= TO_DATE('2017/05/15', 'yyyy/mm/dd') AND Tourenstatistik.DATUM <= TO_DATE('2017/05/16','yyyy/mm/dd')
Left Join
(Select
Vtsbreak.MITARBEITER_NR "ID",
sum(Vtsbreak.DAUER) "Duration",
Vtsbreak.datum "Date"
From
Vtsbreak
Where DATUM >= TO_DATE('2017/04/01', 'yyyy/mm/dd') AND DATUM <= TO_DATE('2017/05/27','yyyy/mm/dd')
group by MITARBEITER_NR, datum;) as VtsPause
On (Tourenstatistik.MITARBEITER = VtsPause.MITARBEITER_NR and Tourenstatistik.DATUM = VtsPause.DATUM)
order by Tourenstatistik.DATUM, Tourenstatistik.MITARBEITER
答案 0 :(得分:0)
尝试将“as”视为“作为VtsPause”。另外,在“datum;”之后删除分号。我也不会在内联查询中用双引号给出列别名,特别是因为你在ON子句中引用了实际的列名。
此外,您的第一个WHERE子句不合适。
也许这会奏效:
String clientId = MqttClient.generateClientId();
final MqttAndroidClient client = new MqttAndroidClient(this.getActivity().getApplicationContext(),"tcp://test.mosquitto.org", clientId);
try {
IMqttToken token = client.connect();
token.setActionCallback(new IMqttActionListener() {
@Override
public void onSuccess(IMqttToken asyncActionToken) {
// We are connected
Log.d(TAG, "onSuccess");
showToast("Connected");
//Subscribing to a topic door/status on broker.hivemq.com
final Activity activity = getActivity();
client.setCallback( activity.this );
答案 1 :(得分:0)
您在子查询中给出了列别名。然后,您需要使用这些别名。此外,QByteArray myByteArray;
myByteArray.resize( bufferSize );
byte * buffer = myByteArray.data(); // Pointer to the memory allocated by the QByteArray
// Pass 'buffer' to library function..
子句放错了地方。
WHERE
查询有很多问题,还有一些建议:
Select ts.DATUM as "Date", ts.MITARBEITER as "ID", b."Duration"
From Tourenstatistik ts Left Join
(Select b.MITARBEITER_NR, b.datum, sum(b.DAUER) as "Duration"
From Vtsbreak b
Where b.DATUM >= DATE '2017-04-01' AND
b.DATUM <= DATE '2017-05-27'
group by MITARBEITER_NR, datum
) b
On ts.MITARBEITER = b.MITARBEITER_NR and ts.DATUM = b.DATUM
Where ts.DATUM >= DATE '2017-05-15' and
ts.DATUM <= DATE '2017-05-16'
order by ts.DATUM, ts.MITARBEITER;
条款。建议:
WHERE
关键字定义日期文字。