2010-08-31 94 views
1

我有一個表稱爲原稿一個sqlite3的數據庫:如何通過選擇使用sqlite3來執行多個連接/組?

CREATE TABLE orig (sdate date, stime integer, orbnum integer); 

我想要做的就是選擇第一個日期/時間爲每個orbnum。唯一的問題是stime將時間視爲非常尷尬的整數。

假設一個六位數字,前兩位數字顯示小時,3./4。顯示分鐘數,最後兩位數字顯示秒數。所以12345的值是1:23:45,而123456的值是12:34:56。

我想我會這樣做使用兩個嵌套連接/組語句,但不知何故我不能讓它正常工作。下面是我到目前爲止有:

select s.orbnum, s.sdate, s.stime 
from (
    select t.orbnum, t.sdate, t.stime, min(t.sdate) as minsdate 
    from (
     select orbnum, sdate, stime, min(stime) as minstime 
     from scia group by orbnum, sdate 
    ) as t inner join orig as s on s.stime = t.minstime and s.sdate = t.sdate and s.orbnum = t.orbnum 
) as d inner join scia as s on s.stime = d.stime and s.sdate = minsdate and s.orbnum = d.orbnum 
where s.sdate >= '2002-08-01' limit 0,200; 

這是我的錯誤:

Error: no such column: t.orbnum 

我敢肯定,這只是一些愚蠢的錯誤,但實際上,我是很新的SQL ...

任何幫助是極大的讚賞:)

編輯:

修復了明顯的拼寫錯誤後,查詢運行 - 但返回一個空的結果集。然而,這個表格包含大約10年的數據,每天大約12個orbnums,每個orbnum大約有4-5個不同的時間。所以我猜在查詢的邏輯中有一些錯誤...

回答

0

在你最後的加入中,你有d,這是你的雙重嵌套select的結果,你加入s就可以了。從那裏,t不可見。這就是爲什麼你會得到「沒有這樣的列:t.orbnum」錯誤。也許你的意思是s.orbnum = d.orbnum

+0

謝謝,我現在覺得有點愚蠢。但它並沒有真正的幫助。該查詢返回一個空的結果集,即使它不應該。請參閱編輯。 – 2010-08-31 12:15:31

相關問題