2012-12-03 2 views
1

그래,이 표현 방법을 모르기 때문에 모호한 제목에 대해 사과해야합니다. 이것이 제 문제입니다.집계를 사용하여 행을 계산하는 방법 SQL

CREATE TABLE dwd_temp (con VARCHAR2(10),line_no VARCHAR2(10),wgt NUMBER,pallet  VARCHAR2(10)); 
insert INTO dwd_temp VALUES('a','1',10,NULL); 
insert INTO dwd_temp VALUES('b','1',11,'x'); 
insert INTO dwd_temp VALUES('b','2',12,'x'); 
insert INTO dwd_temp VALUES('b','3',13,'y'); 

지금 내 요구 사항은, 내가 B, 1,23를 읽고 한 줄을 가지고 질의를 필요로 끝에 같은 "팔레트" 이 선을 '대체'하는 대신 X 팔레트가 'x'인 두 줄. 나의 결과는

a   1   10   null 
b   1   23   x 
b   3   13   y 
+0

결과에 원본 데이터에없는 4 열의 c가 있습니다. 또한 나는 왜 3 열과 마지막 행에 결과가 15인지 이해하지 못한다. – sufleR

+0

죄송합니다 - 저는 실수로 다른 예를 사용했습니다. –

답변

0
select con, min(line_no), sum(wgt), pallet 
from dwd_temp 
group by con, pallet 
+0

line_no (1 및 2)로 그룹화했으나 기본 설정 결과가 1이므로이 작업을 수행 할 수 없습니다. – sufleR

+0

@sufleR : 네 말이 맞아. 나는 그것을 바로 잡았다. –

1

VARCHAR2 당신이 오라클 DB를 사용하는 것을 제안해야한다.

select 
    con, min(line_no), sum(wgt), pallet 
from dwd_temp 
group by pallet, con; 

또는

select 
    min(con), min(line_no), sum(wgt), pallet 
from dwd_temp 
group by pallet; 

SQLFiddle

대답은 당신이 원하는 작업 그룹에 따라 달라집니다.

+0

답해 주셔서 감사합니다! 그래, 난 오라클을 사용하고 있지만 SQLSERVER에 대한 쿼리를 실행해야합니다 - 그 순간에 일하고있는 메신저는 오라클이 설치되어 있으므로 사용하고 있습니다. –

+0

@PaulusNijmaan 두 답변 모두 SQLServer에서 작동해야합니다. 개발할 때 두 개의 서로 다른 RDMS 환경을 사용하지 않아야합니다. 이것은 앞으로 많은 문제를 예방할 것입니다. – sufleR

관련 문제