Q&A

  • 쿼리입니당 한번만 봐주이소 (%와Sum 값 구하기 ㅠㅠ)
하이 고수님들 지가 아래와 같이 쿼릴할려구 하는디..

Access디비에선 제품명과 공정명만으로 Group by를 걸수 있었는디..

MS-SQL에선 그렇게 안돼는 군요... ㅠㅠ

전 제품명과 공정명으로만 그룹을 하고 싶은데 방법이 없을까요???

아시는분 리플달아주심 정말루 감솨 감솨 하겠습니당 ㅠㅠ



with query1 do

begin

close;

sql.clear;

sql.Add('SELECT distinct b.제품명,a.공정명,');

sql.add('c.불량부위,c.불량내역,');

sql.add('d.불량공정 AS 유발공정,d.조치내역');

sql.add(',count(c.불량내역)as 불량건수,sum(b.검사수량) 검사수량,sum(b.불량수량) 불량수량, (b.불량수량 /sum(b.검사수량)* 100) as 불량율');

sql.Add(' FROM ((작업명세 a INNER JOIN 검사명세 b ON a.공정코드 =b.공정코드)');

sql.add(' INNER JOIN (불량명세 c INNER JOIN 불량내역 d');

sql.add('ON c.불량코드 = d.불량코드) ON b.순번 = d.검사번호)');

sql.Add('where d.등록일자 between :now1 and :now2');

parambyname('now1').asdatetime:=strtodatetime(formatdatetime('yyyy-mm-dd',datetimepicker1.Date));

parambyname('now2').asdatetime:=strtodatetime(formatdatetime('yyyy-mm-dd',datetimepicker2.Date));

if combobox1.ItemIndex<>-1 then

begin

sql.Add('and a.공정구분=:scode');

parambyname('scode').asinteger:=combobox1.itemindex+1;

end;

if not (combobox2.Text='') then

sql.Add('and a.공정명='''+combobox2.text+'''');

if not (combobox3.text='') then

sql.Add('and b.제품명 like ''%'+combobox3.text+'%''');

sql.add('Group by b.제품명,a.공정명');

sql.Add('ORDER BY a.공정명,b.제품명,c.불량부위,c.불량내역');

prepare;

open;

ㅠㅠ 이거 실행시 에러가 ㅠㅠ

ㅠㅠ 암튼 아시는 고수님들 한번만 봐주이소 ㅠㅠ

그럼 만수무강하시길 ㅠㅠ

0  COMMENTS