[SQL] 데이타 정렬해서 가져오기(SELECT)

 

 

<문법>

1. 오름차 정렬

SELECT * FROM 테이블명 ORDER BY 정렬필드명 ASC;

2. 내림차 정렬

SELECT * FROM 테이블명 ORDER BY 정렬할필드명 DESC;

3. 여러개의 컬럼 정렬

- 정렬필드명1을 기준으로 오름차 정렬 -> 정렬필드명2 내림차 정렬 -> 정렬필드명3 오른차 정렬
SELECT * FROM 테이블명 ORDER BY 정렬필드명1 ASC, 정렬필드명2 DESC, 정렬필드명3 ASC;

4. 정렬할때 우선 순위

!"#$%&'()*+-./0123(숫자):;<=>?@ABCD(대문자)[\]^_`abcd(소문자){|}~


 

 

저작자 표시 비영리 동일 조건 변경 허락
신고

'Computer Science > SQL' 카테고리의 다른 글

[SQL] 데이타 정렬해서 가져오기(SELECT)  (0) 2017.05.26

대학생일 때 프로젝트 하면 거의 항상 들어갔던 내용 중 하나가 간트차트 (Gantt chart) 였어요.

그 때는 엑셀을 자주 사용할 일이 없어서 그냥 피피티에 표를 그려서 사용하거나 간트차트 만드는 프로그램을 사용했었는데 알고보니 엑셀로도 쉽게 간트차트를 만들 수 있었네요.

 

 

간트차트란?

1919년 미국의 간트가 창안한 것으로 작업계획과 실제의 작업량을 작업일정이나 시간으로 견주어서 평행선으로 표시하여 계획과 통제기능을 동시에 수행할 수 있도록 설계된 막대도표(bar chart)로 ‘막대그래프 차트’라고도 한다. (출처 : 네이버 지식백과)

 

 

 

1. 작업 (& 카테고리 구분), 시작일, 기간, 종료일이 적힌 일정표를 만들어주세요.

종료일이나 기간은 계산될 수 있도록 나타내주세요.

시작일로부터 기간을 안다면, 종료일은 밑의 그림과 같이 <시작일 + 기간 -1>이 되겠고,

시작일과 종료일을 안다면, 기간은 <종료일 - 시간일 +1>이 되겠죠

 

 

 

 

밑의 그림처럼 종료일을 다 채워줍니다.

 



 

 

 

 

 

2. 차트를 삽입합시당 ~

2차원 누적 가로 막대형을 삽입!

삽입 - 가로막대형 - 누적 가로 막대형
(2차원으로 해주세요. 3차원으로 하니까 간트차트가 안되더라구요)


 

 

 

3. 오른쪽 마우스 클릭 - 데이터선택 클릭

 

 

 

 

4. 데이터는 표 전체를 잡아주세용


 

 

5. 그럼 이런 차트가 그려집니다.

이게 무슨 간트차트냐.. 조금만 더 같이 해봅시다.

 

 

 

6. 세부계획이 적힌 세로 축을 선택한 뒤 오른쪽마우스 - 축서식 클릭


 

 

 

 

7. 축서식의 축 옵션 중 '항목을 거꾸로'에 체크해주세요!

세부계획 A가 제일 위로 나와야 하는데 밑으로 가있기 때문이죠.

간트차트는 제일 빠른 일정부터 순차적으로 나가기 때문입니다.


 

 

 

 

 

항목을 거꾸로 설정해주면 이렇게 바뀝니다.

 

8. 시작일 중 가장 처음의 날짜와 종료일 중 가장 늦은 날짜의 표시형식을 잠시 숫자로 바꾸어 그 값을 확인합니다.

날짜축의 최소 / 최대값을 설정하기 위해 필요합니다.

시작일(제일 빠른 날짜) / 종료일(제일 마지막 날짜) 선택 후에 오른쪽마우스 - 셀서식


 

 

 

표시형식 - 숫자

밑의 그림에 보면 '보기'에 숫자가 적혀있죠! 그 숫자를 메모해두세요.

 

 

 

 

저는 이렇다는걸 보여주려고 시작일 종료일의 숫자를 숫자형식으로 바꾸었는데요,

그냥 바로 위 그림에 나오는 숫자를 메모해두시면 됩니다.

 

 

 

9. 가로의 날짜값 선택 후 오른쪽마우스 - 축서식

 

 

 

축서식의 축 옵션에서

최소값 고정 체크, 시작일에 5를 뺀 숫자를 적으시고,

최대값 고정 체크, 종료일에 5를 더한 숫자를 적어주세요.

저는 +- 5씩 주었는데, 다른 숫자나 혹은 설정 안해주셔도 돼요

그런데 표에 약간의 여유가 있어야 날짜 표시되는 칸이 잘 보여서 저는 이렇게 했습니다.


 

 

 

 

10. 이제 레이블을 설정할 차례입니다.

파란색 차트 부분을 선택 - 오른쪽마우스 - 데이터레이블 추가

파란색 / 빨간색 / 초록색 표 모두 데이터레이블 추가해주세요.

 

 

 

그럼 이렇게 됩니다. 초록색 표에는 글씨가 안나와요

 


 

 

 

11. 이번에는 표에 나온 데이터레이블을 선택 - 오른쪽마우스 - 데이터레이블 서식 클릭

시작일 데이터레이블은 <안쪽 끝에>

기간 데이터레이블은 <가운데>

종료일 데이터레이블은 <축에 가깝게>

설정해주세요.


 

 

 

안쪽 끝에, 가운데, 축에 가깝게 설정이 되었죠?

 

 

 

 

12. 이제 기간을 빼고 시작일, 종료일 색을 없애줄겁니다.

시작일 파란표 선택 - 오른쪽마우스 클릭 - 데이터계열서식 클릭


 

 

 

채우기 없음을 선택해주세요.

종료일의 데이터 계열 서식도 채우기 없음 해주세요!


 

 

 

13. 범례는 기간만 놔두고 시작일, 종료일 없애주거나(시작일, 종료일은 투명한 색이 되었으니까요.),

범례 자체를 없애주시거나 원하시는대로 해주세요.



 

 

 

 

14. 완 to the 성!



 

 

 

 

 

15. 응용


 

저작자 표시 비영리 동일 조건 변경 허락
신고

 

 

[MFC] 투명 윈도우 만들기

 

저작자 표시 비영리 동일 조건 변경 허락
신고

 

 

 

 

 

//OnInitDialog 에서 처음실행할때 확인

HANDLE hEvent;

hEvent = CreateEvent(NULL, FALSE, TRUE, AfxGetAppName());         //어플이름으로 확인

if ( GetLastError() == ERROR_ALREADY_EXISTS) {

AfxMessageBox(_T("Already running.."));

exit(0) ;

}

 

 

 

 

//실행중인 어플 내부에서 프로그램 띄위기

SHELLEXECUTEINFO sei;

::ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO));

 

sei.cbSize = sizeof(SHELLEXECUTEINFO);

sei.lpFile = _T("실행할 프로그램 주소~~~(e.g c:\test.exe");

sei.lpParameters = _T("");

sei.nShow = SW_SHOW;

sei.fMask = SEE_MASK_NOCLOSEPROCESS;

sei.lpVerb = _T("open");

 

DWORD result = :: ShellExecuteEx(&sei);

if(sei.hProcess != NULL)

{

::WaitForSingleObject(sei.hProcess, INFINITE);

}

 

 

/// 뮤택스를 이용한 중복실행방지

if(NULL == ::OpenMutex(MUTEX_ALL_ACCESS, FALSE, _T(STRING_MUTEX_NAME)))

{

// 중복실행이 아니므로 뮤택스 생성

m_hMutex = ::CreateMutex(NULL, FALSE, _T(STRING_MUTEX_NAME));

if(m_hMutex == NULL)

{

AfxMessageBox(_T("프로그램 실행에 실패하였습니다."), MB_OK|MB_ICONEXCLAMATION);

return FALSE;

}

}

else

{

// 중복실행일 경우 기존 열려있는 창을 맨 앞으로 보여줌

// 만약, 창이 최소화 상태라면 최소화 상태 해제

CWnd*  pWnd = NULL;

pWnd = CWnd::FindWindow(NULL, _T(STRING_CAPTION_NAME));

if(pWnd != NULL)

{

if(pWnd->IsIconic())

pWnd->ShowWindow(SW_RESTORE);

else   

pWnd->SetForegroundWindow();

}

else

{

pWnd = CWnd::FindWindow(NULL, _T(STRING_CAPTION_NAME));

if(pWnd != NULL)

{

if(pWnd->IsIconic())

pWnd->ShowWindow(SW_RESTORE);

else   

pWnd->SetForegroundWindow();

}

}

return FALSE;

} 

////

저작자 표시 비영리 동일 조건 변경 허락
신고

1. Google Glasses

핸즈프리 비디오 녹화(720p)

윙크를 통한 사진촬영

GPS 네비게이션

영상통화

Google Now : 시간과 장소에 기반하여 연관성 있는 정보를 제시해주는 기능이기 때문이다

단점 : 너무나 짧은 배터리 수명(1),

 

2. Mircrosoft Hololens

 

Hololens는 여러명이 동시에 같은 화면을 볼 수 있고 스크린이 한정되어 있지 않고 모든 시야에 적용됨. 상용화 안됨.

윈도우10환경으로 플랫폼 구축.

 

저작자 표시 비영리 동일 조건 변경 허락
신고

 

이번에 소개 드리는 프로그램은 시리얼 포트(COM port)나 TCP/IP, UDP/IP 프로토콜로 데이터를 주고받을 수 있는 프로그램입니다. 시리얼이나 TCP, UDP 프로토콜로 통신하는 장비를 연결하는 프로그램을 작성하기 전에 프로토콜이 어떻게 동작하는지 간단히 테스트 하는 용도로 이 프로그램을 사용해 볼 수 있습니다. 그동안 제가 하이퍼터미널(hyperterm)이나 테라텀(TeraTerm)을 사용하면서 불편하게 생각했던 여러 기능들을 추가하여 만들었습니다. 아마도 저와 같은 각종 디바이스를 다루고 통신 프로토콜을 구현하는 개발자들에게 유용한 프로그램이 되지 않을까 합니다.

 

 

다음은 프로그램을 실행하고 [Connect] 버튼을 눌러 COM 포트로 연결한 그림입니다. 기본적으로 텍스트로 보여주면서 HEX를 선택할 경우 16진수로도 보여줍니다. 여기서 제가 가장 심혈을 기울인 부분은 ASCII 코드를 입력할 때 Escape sequence를 사용할 수 있도록 한 것입니다. 무슨 말인가 하면, 문자열 내에서 \n을 사용하여 줄바꿈 기능을 하는 제어 문자를 만드는 것을 말합니다. 이스케이프 시퀀스는 이것 말고도 몇 가지가 더 있으니 다음 페이지를 참고하시기 바랍니다: http://msdn.microsoft.com/en-us/library/h21280bw.aspx

그리고 한 가지 더 말하자면, 전송할 문자열을 입력할 때, ASCII 문자를 16진수 값으로 서로 변환하여 입력하는 기능입니다. 필요에 따라 16진수로 입력하거나 Escape sequence를 사용하는 ASCII 문자로 입력하면 됩니다. HEX와 ASCII 라디오 버튼을 누름에 따라 이 둘을 서로 번갈아 표시하기 때문에 입력되는 문자열을 더 잘 파악할 수 있습니다.

 

 

 

다음은 데이터를 보내기 위해 단축키를 설정하는 윈도우 입니다. 먼저 보내고자 하는 데이터를 적고 지연과 반복 횟수를 설정합니다. 그리고 단축키를 설정해두면, 다음 대화상자가 닫힌 상태에서도 단축키를 눌러 데이터를 보낼 수 있습니다.

 

 

 

 

이상입니다. 버튼과 컨트롤 들이 많아 좀 헷갈리지 않을까 하는 생각이 들지만, 그래도 나름 직관적으로 만든다고 만들었습니다. 혹시 조언이나 힌트, 버그레포트 주실 일이 있다면 댓글 부탁드립니다. ^^

 

Version 1.15 (2014.4.28) 

  1. 윈도우 7(32bit)에서 윈도우 크기 조정시 화면 업데이트가 되지 않는 문제 해결

  2. 단축키 메시지 편집 대화상자에서 [보내기]버튼을 누르거나 단축키를 누를 때마다 전송 상태가 토글 되도록 변경 

 

Version 1.14a (2014.4.22) 

  1. 윈도우 생성시 에러 발생하고 프로그램 중단되는 버그 수정 (확인 필요)

     - XP에서 실행하시는 분들께서 정상적으로 실행되는지 확인해 주시면 고맙겠습니다.

        제가 XP가 설치된 PC가 없어, 의심되는 부분을 수정만 하고 테스트는 해보지 못했습니다.

 

Version 1.14 (2014.4.12) 

  1. 최대화, 최소화 버튼 추가

  2. 윈도우 사이즈 조절 가능하도록 함

  3. 시리얼 통신 속도를 임의의 값으로 설정 가능하도록 함

 

Version 1.13 (2014.3.12)

  1. 송수신 문자열 표시줄 수가 제대로 적용되지 않던 bug fix

  2. 내부 코드 정리

 

Version 1.12 (2014.2.24)

  1. 화면 표시 메시지의 자동 줄바꿈 켜고 끌 수 있는 체크박스 추가

  2. 송수신 메시지 표시 켜고 끌 수 있는 체크박스 추가

  3. 송수신 메시지에 대한 시간 표시 방법을 선택할 수 있는 드롭 리스트 박스 추가

  3. 연결 중인 상황이 아닐 때 단축키에 의한 메시지 송신 되는 bug fix

  4. HEXA 보기에서 무조건 줄바꿈 되는 bug fix

 

Version 1.11 (2014.2.22)

  1. 설정사항 저장 방식 변경 (ini 파일이 2.10 버젼과 호환되지 않음, 설정사항 모두 리셋 됨)

  2. 설정 항목들 중 중복되는 내용들 없애고 간략화 함

  3. 키보드 이벤트 후킹 방식 변경

 

Version 1.10 (2014.2.18)

  1. 한글화

  2. 화면 표시 옵션 추가

 

Version 1.01 (2014.2.14)

  1. 단축키 1번이 제대로 저장되지 않는 bug fix

  2. 단축키 설정 대화상자 초기 실행 속도 개선

 

 

SerialPortMon.exeVersion 1.15  (Updated: 2014.4.28)

 

SerialPortMon.zip  Version 1.15  (Visual Studio 2008 / C++)

 

 

 

 

 

 출처 : http://blog.daum.net/pg365/276

저작자 표시 비영리 동일 조건 변경 허락
신고
 

 

private static void killps(string processName)

        {

 

            Process[] process = Process.GetProcessesByName(processName);

            Process currentProcess = Process.GetCurrentProcess();

            foreach (Process p in process)

            {

                if (p.Id != currentProcess.Id)

                    p.Kill();

            }

           

        }

 

저작자 표시 비영리 동일 조건 변경 허락
신고

[모든 공백을 없애기]

str.Replace( _T(" "), NULL );

 

[왼쪽 공백만 없애기]

str.TrimLeft( _T(" ") );

 

[오른쪽 공백만 없애기]

str.TrimRight( _T(" ") );

저작자 표시 비영리 동일 조건 변경 허락
신고

 

 

 

(Draw, Paint 사용가능)

 

HANDLE bmp;

CBitmap cBitmap;

BITMAP bmpinfo;

//CDC는 pDC

CDC memdc;

bmp = LoadImage(NULL, _T("DDR_Skin/button/bt_Loop.bmp"), IMAGE_BITMAP, 0,0, LR_LOADFROMFILE);

cBitmap.Attach(bmp);

cBitmap.GetBitmap(&bmpinfo);

memdc.CreateCompatibleDC(pDC);

memdc.SelectObject(bmp);

//pDC->BitBlt(chkboxrect.left,chkboxrect.top,bmpinfo.bmWidth,bmpinfo.bmHeight, &memdc, 0,0,SRCCOPY);

pDC->TransparentBlt(chkboxrect.left, chkboxrect.top, bmpinfo.bmWidth, bmpinfo.bmHeight, &memdc, 0, 0, bmpinfo.bmWidth, bmpinfo.bmHeight, RGB(0,0,0));

 

 

 

memdc.DeleteDC();

cBitmap.DeleteObject();

저작자 표시 비영리 동일 조건 변경 허락
신고

함수

((CDDR3Dlg*)GetParent())->AdditemDrag(Itemcnt,AddDragPath);

 

변수

((CDDR3Dlg*)GetParent())->m_cnt = 1;

 

저작자 표시 비영리 동일 조건 변경 허락
신고

+ Recent posts