2017-09-22 6 views
1
SELECT DISTINCT 
    id, name, floors, rooms, bathrooms, 
    singlebeds, doublebeds, tollboys, tvs, 
    conditontypes_id, roomtypes_id, roomstates_id, 
    internet, carstop, elevator, cleanservice, 
    phoneguide, botagaz, magazeen, maqroeev, salahdir, 
    clotheswasher, foodlist, makoa, thalaga, foodtable, 
    saala, kitchen, notations, stopstate, contract_id, 
    enterstate, aqed_id, aqedtype, datefrom, dateto, daynumber, 
    monthnumber, room_name, roomprice, cus_name, company, 
    discounttitle, discounttype, discountprice, total, totalend, 
    aqed_note, addeddate, entertime, state, nationalname, 
    sejelnumber, diffarest, diffbusy, dayprice, monthprice, hourprice 
FROM    
    rooms_monitorview 
WHERE 
    (state IS NULL) OR 
    (state = 'محجوز') AND (diffarest < 0) 

これは結果繰り返し結果を避けるために、別個のID列を取得するにはどうすればよいですか?

12 102 0 0 0 0 0 0 0 1 1 1 False False False False False False False False False False False False False False False False .... False 0 شاغر NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 
14 104 0 0 0 0 0 0 0 1 1 1 False False False False False False False False False False False False False False False False .... False 0 شاغر NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 
15 105 0 0 0 0 0 0 0 1 1 1 False False False False False False False False False False False False False False False False .... False 0 شاغر 15 يومي 25/09/2017 02/10/2017 10 0 105 0.0000 سالم علي محمد بدون بدون $ 0.0000 0.0000 0.0000 ............ 22/09/2017 10:35:24 م NULL محجوز سعودي 123456 -2 -9 0.00 0.00 0.00 
15 105 0 0 0 0 0 0 0 1 1 1 False False False False False False False False False False False False False False False False .... False 0 شاغر 16 يومي 28/09/2017 28/09/2017 5 0 105 0.0000 سالم علي محمد بدون بدون $ 0.0000 0.0000 0.0000 ............ 23/09/2017 01:31:21 ص NULL محجوز سعودي 123456 -5 -5 0.00 0.00 0.00 
16 106 0 0 0 0 0 0 0 1 1 1 False False False False False False False False False False False False False False False False .... False 0 شاغر NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 

私は明確な必要であるid=15 - 私はこれをどのように行うことができますか?

あなたはIDごとに1つだけの行したい場合があり二つの異なる結果が、-3および-9

答えて

1

使用row_number()

SELECT v.* 
FROM (SELECT v.*, 
      ROW_NUMBER() OVER (PARTITION BY id ORDER BY id) as seqnum 
     FROM rooms_monitorview 
     WHERE (state IS NULL OR state = 'محجوز') AND diffarest < 0 
    ) v 
WHERE seqnum = 1; 

は、私がWHERE条件に括弧を追加したことに気づきました。このロジックはあなたのロジックと少し異なりますが、これは本当に必要なものかもしれません。

+0

おかげでそんなに作品罰金ゴードン・リノフ –

+0

SELECT V。* FROM (Iを選択します。rooms_monitorview FROM SEQNUM AS ID IDで ORDER)BY *、ROW_NUMBER()OVER(PARTITIONを私 AS WHERE(状態がNULL IS) OR (state = 'محجوز')AND(diffarest <0))v WHERE seqnum = 1; –

関連する問題