2012-10-15 118 views
0

我有一個數據如下表:SQL查詢來檢索結果

客戶:

cus_id    cus_name 
1     philip 
2     david 
3     morris 

順序:

order_id order_no cus_id ordr_status  order_ date_time 
    1    123  1  d      20121015 13:10:01 
    2    456  1  c      20121014 14:20:00 
    3    789  2  d      20121013 17:10:01 
    4    767  2  c      20121014 15:10:00 

基於此數據,我想如果訂單日期時間介於20121014 14:00:00和20121015 14:00:00之間,並且訂單狀態爲(d,c)並且它們具有相同的代理ID,則檢索客戶和訂單信息。

+1

這是功課?聽起來很像功課。你有什麼嘗試? –

+1

請編輯你的答案,並告訴我們[你試過的](http://www.whathaveyoutried.com) – Kermit

+0

它不是家庭工作夥計。你能夠做到這一點嗎?.select * from customer c join order o on (c.cus_id = c.cus_id)其中to_char(o.order_date_time,'YYYYMMDD HH24:MI:SS')不在'20121014 14:00:00'和'20121015 14:00:00'之間。但它並不是我不想發佈確切的表格,因爲隱私。 – user1726550

回答

1

好,訂單,

SELECT * 
FROM order 
WHERE NOT order_date_time between '2012-10-14 14:00:00' and '2012-10-15 14:00:00' 

加盟客戶就留給讀者自己練習。

+0

它不會返回任何數據。我想檢索訂單1,2作爲兩個不同的行。 – user1726550

+0

@ user1726550對不起,您在「20121014 14:00:00和20121015 14:00:00」之間沒有*要求訂單的問題中說過,但是現在您*確實希望看到這些訂單?你能否在這個問題上澄清一下? – peacedog

+0

更新的問題皮爾斯。 – user1726550

1

如果我知道你想這一點:

QUERY SQLFiddle example

SELECT 
c.cus_name 
,o.order_no 
,o.ordr_status 
,o.[order_ date_time] 
FROM 
customer c 
    RIGHT JOIN order1 o 
    ON c.cus_id = o.cus_id 
WHERE o.[order_ date_time] >='20121014 14:00:00' 
    AND o.[order_ date_time] <='20121015 14:00:00' 
    AND (o.ordr_status = 'd' OR o.ordr_status = 'c') 

結果:

| CUS_NAME | ORDER_NO | ORDR_STATUS | ORDER_ DATE_TIME | 
--------------------------------------------------------- 
| philip |  123 |   d | 20121015 13:10:01 | 
| philip |  456 |   c | 20121014 14:20:00 | 
| david |  767 |   c | 20121014 15:10:00 |