TableA
idx : 일련번호
tnum : 주문갯수
tinfo : 주문상품정보
co_name : 주문한 회사
tdate : 주문일
위와 같이 Table 이 있다고 하구요
주문한 회사별로 특정주문일의 주문상품정보를 나열해야 합니다.
현재 프로그래밍은
select co_name from TableA where tdate='2014-06-23' group by co_name 으로 해당일자에 주문한 업체정보를 가져오고
밑에서 아래와 같은 쿼리로 해당 업체별로 해당 주문일의 주문정보를 보여주는 식입니다.
select * from TableA where co_name='"&co_name&"' and tdate='2014-06-23' "
그러니까 루프가 2개 돌아가게 됩니다.
아무래도 그러다보니까 조회속도가 엄청 느리네요
이걸 쿼리 하나로 할 수 있는 방법은 없을까요? 아니면 속도 문제를 해결할 방법이?
주문한 회사 별로 주문정보가 쭉 나열이 되어야 합니다.
한 페이지에 뿌려주어야 할 데이타 갯수는 3,000개 정도 됩니다.
Comment 4
-
처리짱
2014.06.23 19:09
-
항해자™
2014.06.24 02:22
가급적이면 from절에 , 를 쓰지 않을 것을 권장합니다,,
나중에 마이그레이션 어떻게 하시려고,,
;with cteTableA as (
select co_name
from dbo.TableA
where tdate = '2014-06-23'
group by co_name
)
select b.*
from cteTableA as a
join dbo.TableA as b
on b.co_name = a.co_name
where b.tdate = '2014-06-23' -
처리짱
2014.06.24 15:40
, 적지말고 join 키워드를 쓰라는 말씀이신지요..? 음 같은 실행계획이던데 무슨 차이 인지요..? 태클아니에요 ㅜㅠ. 정말궁금해서...
-
냥냥
2014.06.24 18:14
답변 감사드려요 ^^
두가지 다 해봐야겠어요
select * from
(select co_name from TableA where tdate='2014-06-23' group by co_name) as a,
TableA as b
where a.co_name = b.co_name and a.tdata = b.tdate
욜케 하면 될까요..;