2014-02-28 8 views
0

구매 주문에 대한 정보를 보여주는 쿼리가 있는데, 지금은 득점 기회가있는 테이블 하나가 있습니다.점수 별 SQL 그룹 %

이 다음과 같은 데이터가 포함

지금은 그룹 상단에있는 가장 높은 가능성이 데이터에 의해 내 결과, 그래서 100 %로 할
0% - Geen kans 
100% order 
0% - Klant 
20% FM > 1 jaar 
20% > 1 jaar 
40% 6 maanden 
50% 3 maanden 
60% 2 maanden 
60% FM 2 maanden 
70% 1 maand 
80& 2 weken 
90% 1 week 

-> 90 % -> 80 % -> 등

그러나; ORDER BY score.SCORECODE ASC을 사용하면 처음에는 NULL을 먼저 표시 한 다음 0 %를 입력 한 다음 100 %를 표시합니다. 누구든지 해결 방법을 알고 있습니까?

편집 :

select distinct 
rela.name "Relatie" 
,   dealer.NAME "Dealer" 
,  (addr.STREET+' '+CAST(addr.HOUSENUMBER as varchar(30))+' '+CAST(addr.ADDITIONHOUSENUMBER AS varchar(30))+' '+addr.ZIPCODE+' '+addr.CITY+' '+coun.[NAME]) as "Relatieadres" 
,  atyp.AUTOTYPECODE "Autotype" 
,  score.SCORECODE "Verkoopstadium" 
,  type.[DESCRIPTION] "Taaktype" 
,  offe.OFFERDATE "Offertedatum" 
,  (pers.FIRSTNAME+' '+pers.LASTNAME) as "Werknemer" 
,   todo.DATECREATED as "Begindatum" 
,   todo.DUEDATE "Vervaldatum" 
,  crel.AUTOAANPASSINGCODE "type aanpassing" 
,  stat.STATE "Workflowstatus" 
,  rela.PHONE1 "Telefoonnummer" 
,  rela.PHONE2 "Relatie mobiel" 
,  (pers1.FIRSTNAME+' '+pers1.LASTNAME) as "Contactpersoon" 
,  posi.[DESCRIPTION] "Functie contactpersoon" 
,  todo.PLAINTEXT_INTERNALMEMO "Interne memo" 
from r_todo todo 
LEFT OUTER JOIN r_relation rela 
ON todo.FK_RELATION  = rela.PK_R_RELATION 
LEFT OUTER JOIN R_DEALER dela 
ON dela.FK_RELATION = rela.FK_DEALER 
LEFT OUTER JOIN r_relation dealer 
ON rela.FK_DEALER = dela.FK_RELATION 
LEFT OUTER JOIN r_todotype type 
ON todo.FK_TODOTYPE  = type.PK_R_TODOTYPE 
LEFT OUTER JOIN R_EMPLOYEE empl 
ON todo.FK_ASSIGNEDTO   = empl.PK_R_EMPLOYEE 
LEFT OUTER JOIN r_person pers 
ON empl.FK_PERSON   = pers.PK_R_PERSON 
LEFT OUTER JOIN r_address addr 
ON rela.FK_VISITINGADDRESS = addr.PK_R_ADDRESS 
LEFT OUTER JOIN r_country coun 
ON addr.FK_COUNTRY   = coun.PK_R_COUNTRY 
LEFT OUTER JOIN r_workflowstate stat 
ON todo.FK_WORKFLOWSTATE = stat.PK_R_WORKFLOWSTATE 
LEFT OUTER JOIN r_contact cont 
ON cont.FK_RELATION  = rela.PK_R_RELATION 
LEFT OUTER JOIN R_POSITION posi 
ON cont.FK_POSITION  = posi.PK_R_POSITION 
LEFT OUTER JOIN r_person pers1 
ON cont.FK_PERSON   = pers1.PK_R_PERSON 
LEFT OUTER JOIN R_offer offe 
ON offe.FK_RELATION  = rela.PK_R_RELATION 
LEFT OUTER JOIN x_r_relation xrela 
ON xrela.FK_R_RELATION  = rela.PK_R_RELATION 
LEFT OUTER JOIN c_relatieautotype atyp 
ON xrela.FK_AUTOTYPE  = atyp.PK_C_RELATIEAUTOTYPE 
LEFT OUTER JOIN c_relatieautoaanpassing crel 
ON xrela.FK_AUTOAANPASSING  = crel.PK_C_RELATIEAUTOAANPASSING 
LEFT OUTER JOIN C_RELATIESCORE score 
ON xrela.FK_SCORE  = score.PK_C_RELATIESCORE 
where todo.DUEDATE is not null 
ORDER BY score.SCORECODE ASC 
+0

한 열인가요 : 이것은 내 전체 쿼리입니까? – Mihai

+0

이 테이블에있는 값입니다. 내 전체 쿼리를 추가했습니다. – Matheno

+0

스코어 코드는 100 %, 90 % 등의 varchar 열입니까? – Mihai

답변

0
ORDER BY CASE WHEN Verkoopstadium IS NULL THEN '101%' ELSE 0 END, Verkoopstadium 
+0

메시지 레벨 145, 수준 15, 상태 1, SELECT DISTINCT가 지정되면 ORDER BY 항목이 선택 목록에 나타나야합니다. – Matheno

+0

여전히 변화가 없으며, DISTINCT를 삭제할 때 여전히 0 %로 시작하는 결과를 제공합니다. – Matheno