MSSQL 조건에맞게 그룹화..하기? 질문드리겠습니다 0 6 2,597

by 지메이비 [SQL Query] mssql [2023.07.26 15:10:37]


select a.storeCode,
(case when len(a.storeType)>0 then c.clientName+'['+storeType+']' else c.clientName end) as clientName, 
 		a.materialCode,b.materialName,
 		b.dimension,
 		(select x.unitName from units x
 		where x.unitCode=b.unitCode) uName
 	from orders a,
 	material b,
 	client c
 where a.dealercode='1734'
 and a.stockinDay='20230726'
 and a.dealercode=b.dealerCode
 and a.materialCode=b.materialCode
 and a.dealercode=c.dealercode
 and a.storeCode=c.clientCode
 and a.storeCode!='9999'

 

storeCode clientName materialCode materialName dimension uName
2002 강남아이꿈터어린이집 1000087  바나나(8다발) 8다발 Box
2002 강남아이꿈터어린이집 1000088  바나나(1.6kg내외) 1송이=10개내외/1.6kg내외 송이
2002 강남아이꿈터어린이집 1000096  바나나(2.1kg내외) 1송이=15개내외/1BOX=6송이 송이
2002 강남아이꿈터어린이집 1000316  신동진쌀(20kg/22년산/등급:상/함평군농협) 20kg ea
2002 강남아이꿈터어린이집 1011165  (간편식)감자깡(농심,상온) 75g*16개입/box Box
2002 강남아이꿈터어린이집 1013961  (간편식)감자핫도그(엠디에스,냉동) 130g*5ea/PK PK
2003 교유치원 1013241  조미전장김 60g(5g*12매)/ea ea
2003 교유치원 1013298  통통순살오징어튀김 1kg/PK PK

결과값은 이렇게나오는데

품목코드가 1000087 1000088 1000096 1000316 인 것들은 정상적으로 나오 되 아닌 것들은 병합해서 한줄로 나오게하고싶습니다..

시도끝에 드는 생각은 불가능한거같은데 가능한건가요..??

by 마농 [2023.07.26 15:54:47]

1. 개별과 병합을 나누는 기준이 뭘까요?
2. 원하는 결과표도 보여주세요.


by 지메이비 [2023.07.26 15:55:29]

품목코드가 1000087 1000088 1000096 1000316 인것들은 개별로나오고 그외에는 다 하나로 병합입니다


by 마농 [2023.07.26 16:13:39]

병합된 결과표, 원하는 결과표 그려주세요.


by 지메이비 [2023.07.26 16:17:13]
storeCode clientName materialCode materialName dimension uName
2002 강남아이꿈터어린이집 1000087 바나나(8다발) 8다발 Box
2002 강남아이꿈터어린이집 1000088 바나나(1.6kg내외) 1송이=10개내외/1.6kg내외 송이
2002 강남아이꿈터어린이집 1000096 바나나(2.1kg내외) 1송이=15개내외/1BOX=6송이 송이
2002 강남아이꿈터어린이집 1000316 신동진쌀(20kg/22년산/등급:상/함평군농협) 20kg ea
2002 강남아이꿈터어린이집        
2003 교유치원        

 입니다 병합은 매출처명을 제외한 곳은 빈값으로 나와도 상관없습니다 


by 마농 [2023.07.26 16:27:54]
SELECT DISTINCT
       a.storeCode
     , c.clientName  +  CASE WHEN LEN(a.storeType) > 0 THEN '[' + a.storeType + ']' ELSE '' END clientName
     , CASE WHEN a.materialCode IN (1000087, 1000088, 1000096, 1000316) THEN a.materialCode END materialCode
     , CASE WHEN a.materialCode IN (1000087, 1000088, 1000096, 1000316) THEN b.materialName END materialName
     , CASE WHEN a.materialCode IN (1000087, 1000088, 1000096, 1000316) THEN b.dimension    END dimension
     , CASE WHEN a.materialCode IN (1000087, 1000088, 1000096, 1000316) THEN x.unitName     END uName
  FROM orders   a
     , material b
     , client   c
     , units    x
 WHERE a.dealercode   = b.dealerCode
   AND a.materialCode = b.materialCode
   AND a.dealercode   = c.dealercode
   AND a.storeCode    = c.clientCode
   AND b.unitCode     = x.unitCode
   AND a.dealercode   = '1734'
   AND a.stockinDay   = '20230726'
   AND a.storeCode   != '9999'
;

 


by 지메이비 [2023.07.27 09:18:42]

감사합니다 마농님!!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입