GSI


DROP TABLE #MyTempTable; --임시테이블을 만든다.
-- CTE 구조로 해서 원하는 내용을 뽑아 온다.
with empCTE(
 _idx,
 _uid,
 _puid)
as
(
 -- boss only
 select idx, uid, puid
 from userList_tmp
 where uid = 'test1' and grade = '2' --최초 탐색 시점

 union all

 select aa.idx, aa.uid, aa.puid
 from userList_tmp as aa inner join empCTE as bb
 on aa.puid = bb._uid
 --where bb.level < 3
)
select _idx into #MyTempTable from empCTE --임시테이블로 복사
GO
-- 임시 테이블의 내용을 원본 테이블에서 삭제
delete from userList_tmp where idx in (select * from #MyTempTable)  제

Posted by gsi
:

c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WinSock2.h(109): error C2011: 'fd_set' : 'struct' 형식 재정의

#define WIN32_LEAN_AND_MEAN  // 거의 사용되지 않는 내용은 Windows 헤더에서 제외합니다.

windows.h 위에 디파인을 추가 합니다.
Posted by gsi
:


c:\gsiproject\영호형회사\rfc\영호형_프로젝트\300.cruise\200.cruisemainproject\unit-module\cruise\network\lock.cpp(46): error C3861: 'InitializeCriticalSectionAndSpinCount': 인수 종속성을 조회해도 식별자를 찾을 수 없습니다.
c:\gsiproject\영호형회사\rfc\영호형_프로젝트\300.cruise\200.cruisemainproject\unit-module\cruise\network\lock.cpp(21): error C3861: 'SwitchToThread': 인수 종속성을 조회해도 식별자를 찾을 수 없습니다.
c:\gsiproject\영호형회사\rfc\영호형_프로젝트\300.cruise\200.cruisemainproject\unit-module\cruise\network\lock.cpp(59): error C3861: 'TryEnterCriticalSection': 인수 종속성을 조회해도 식별자를 찾을 수 없습니다.

위와 같은 오류가 난다면.

#ifndef _WIN32_WINNT  // Windows XP 이상에서만 기능을 사용할 수 있습니다.                  
#define _WIN32_WINNT 0x0501 // 다른 버전의 Windows에 맞도록 적합한 값으로 변경해 주십시오.
#endif
 

이 코드를 stdafx.h의 window.h 선언 위쪽에 추가해 준다.
Posted by gsi
:


돈을 표시할때 세자리 마다 콤마를 표시 할려고 할때 좀 삽질을 많이 했다.
BoundField 이걸 사용해서 바로 하기 위해서

DataFormatString="{0:n0}"    // 출력 : 1,000,000

를 사용하면 제대로 표시가 된다.

이거 말고 아래와 같이 사용하면 소수점도 표시가 되는거 같다.

DataFormatString="{0:n}"    // 출력 : 1,000,000.00
Posted by gsi
:



위쪽의 쿼리 결과 리스트에서 보면 uid, puid, grade 등의 조직도를 구성할 수 있는 정보가 존재 할때
아래와 같은 결과를 만들어 낼 수 있다.

[쿼리예]
with empCTE(empUid, mgrName, dept, level)
as
(
 -- 보스
 select uid, puid, grade, 0
  from userList
  where puid is null and grade = '0'
 union all
-- 나머지 grade를 포함한 내용
 select aa.uid, aa.puid, aa.grade, bb.level+1
  from userList as aa inner join empCTE as bb
  on aa.puid = bb.empUid
 where bb.level < 3  -- 이 코드가 없어지면 모든 grade에 대해서 출력이 된다. 즉, grade를 제한할때 사용
)
select replicate('ㄴ', level) + empUid as uid, dept from empCTE order by empUid, level
Posted by gsi
: