반응형

Database 81

SQL Server - 월별 max값 찾기, 월별 합계 및 총합계 뽑아내기

지난 번에는 1년간 판매 기록에서 월별 매출을 뽑을 때 데이터가 없는 월이라도 0으로 데이터가 표시 되게 하는 방법을 했다. 오늘은 1년간 판매 기록에서 월별 max값, 판매가 많이 된날을 월별로 정리하는 것( 테이블 액세스는 단 한번해야함) 그리고 월별 합계와 함께 내가 보고있는 결과화면의 기간의 총합을 뽑아내보겠다. 활용할 테이블 모습 select convert(varchar(6), sales_date, 112) as YYYYMM, substring( max( right('000000000' + convert(varchar, sales_count), 9) + convert(varchar, sales_date, 112)), 14, 18) '최고 판매된 날짜', max(sales_count) '월최고판매..

Database/SQL Server 2020.12.29

SQL Server - 자릿수 맞추기, 000 집어넣기

--1. 숫자를 문자열로 변환시켜 합친다음 인덱스로 잘라낸다. right('000000' + convert(varchar,121), 6) --결과 : 000121 --타입 : 문자열 --2. SQL server 12 에서 나온 format 함수를 쓴다. select format(121,'D6') --결과 : 00121 --타입 : 숫자 --3. Replicate 함수를 쓴다. select replicate('0',5-len('123')+'123' select replicate('0', 5-3) + '123' --결과 : 00123 --타입 : 문자열

Database/SQL Server 2020.12.29

SQL Server - 동적 SQL Dynamic SQL

동적 SQL이란 ? 정적인 것과 반대로 SQL 문이 완성되지 않은 것을 말한다. WHERE 절이나 UPDATE절 등의 조건이 프로그램이 실행 될 때 결정될 때 동적 SQL이 필요하다. 유연하게 SQL문이 완성하여 실행 될 수 있게 하는 인터페이스이다. 동적 SQL 특징 - 문자열 데이터이다. - 시작과 끝을 나타내는 부호가 없다. Example : Create Procedure spSearchEmployees @FirstName nvarchar(100), @LastName nvarchar(100), @Gender nvarchar(50), @Salary int As Begin Select * from Employees where (FirstName = @FirstName OR @FirstName IS NU..

Database/SQL Server 2020.12.23

SQL Server - 전역 고유 식별자 GUID Globally Unique Identifier

전역 고유 식별자(GUID, Globally Unique Identifier)는 무엇인가 ? GUID는 16바이트 2진수 데이터 타입으로 이루어진 전역에 고유한 값이다. GUID는 uniqueidentifier로도 쓰인다. 그리고 테이블, 데이터베이스, 서버 통틀어서 고유한 값이다. 데이터를 통합할 때(다른 서버간) 유용하다. Syntax: SELECT NEWID() NULL 값인 경우 DECLARE @MyGUID UniqueIdentifier IF(@MyGUID IS NULL) Begin Set @MyGUID = NEWID() END Select @MyGUID or Declare @MyGUID UniqueIdentifier Select ISNULL(@MyGUID, NewID()) Empty 인 경우 E..

Database/SQL Server 2020.12.23

SQL Server - 순서 만들기 시퀀스 Sequence object

SYNTAX : CREATE SEQUENCE [schema_name . ] sequence_name [ AS [ built_in_integer_type | user-defined_integer_type ] ] [ START WITH ] [ INCREMENT BY ] [ { MINVALUE [ ] } | { NO MINVALUE } ] [ { MAXVALUE [ ] } | { NO MAXVALUE } ] [ CYCLE | { NO CYCLE } ] [ { CACHE [ ] } | { NO CACHE } ] [ ; ] Property Description 데이터 타입 AS 뒤에 들어갈 데이터 타입 종류- 내장 정수 타입(tinyint, smallint, int, bigint, deciaml etc...) 또..

Database/SQL Server 2020.12.23

sql 연습

select a.카드번호 , a.거래금액 전일_거래금액 , b.거래금액 주간_거래금액 , c.거래금액 전월_거래금액 , d.거래금액 연중_거래금액 from ( -- 전일거래실적 select 카드번호, 거래금액 from 일별카드거래내역 where 거래일자 = to_char(sysdate-1,'yyyymmdd') ) a , ( -- 전주거래실적 select 카드번호, sum(거래금액) 거래금액 from 일별카드거래내역 where 거래일자 between to_char(sysdate-7,'yyyymmdd') and to_char(sysdate-1,'yyyymmdd') group by 카드번호 ) b , ( -- 전월거래실적 select 카드번호, sum(거래금액) 거래금액 from 일별카드거래내역 where 거..

Database/SQL Server 2020.12.22

SQL Server - sys.dm_sql 참조 엔티티 referencing entities

A테이블에 의존하는 모든 객체 가져오는 명령문 Returns all the objects that depend on ATable Select * from sys.dm_sql_referencing_entities('dbo.ATable','Object') sys.dm_sql_referencing_entities - 참조하는 엔티티 sys.dm_sql_referenced_entities - 참조되어지는 엔티티 example: Create view VwEmployees --> Referencing entity as Select * from Employees --> Referenced entity 스키마 바운드 종속성 vs Non 스키마 바운드 종속성 Schema-bound dependency VS Non-Sch..

Database/SQL Server 2020.12.22

SQL Server - 객체 종속성 식별 Identifying object dependencies

외래키로 참조되어있는 테이블은 삭제하고 싶어도 삭제가 되지 않는다. 하지만 프로시저에 참조되어진 테이블은 삭제가 가능하다. 그런 관계를 확인하고 싶을 때 1. 첫 번째 방법 Microsoft SQL Server Management Studio 경우 테이블에 오른쪽 마우스를 눌러 View Dependencies로 들어간다. 그렇게 하면 이 테이블에 속해져있는 것과 이 테이블이 속한 곳이 나온다. 이 테이블이 의존하는 객체 이 테이블에 의존하는 객체 2. 두 번째 방법 A테이블에 의존하는 모든 객체 가져오는 명령문Returns all the objects that depend on ATable Select * from sys.dm_sql_referencing_entities('dbo.ATable','Obje..

Database/SQL Server 2020.12.22

SQL Server - 오프셋, 페치 넥스트 Offset, Fetch Next, Pagination

OFFSET FETCH Clause - 2012년도에 소개 되었다. - 결과 화면에서 결과 페이지를 나눠 리턴한다. - 오더 바이(Order by)절이 필수로 들어가야 한다. Syntax : SELECT * FROM table_Name ORDER BY Column_List OFFSET Rows_To_Skip ROWS FETCH NEXT Rows_To_Fetch ROWS ONLY 페이지 나누는 프로시저 만들기 Pagination Create proc spGetROwsByPageNumberAndPageSize @PageNumber INT, @PageSize INT AS BEGIN SELECT * FROM tblSample ORDER BY Id OFFSET (@PageNumber - 1) * @PageSize..

Database/SQL Server 2020.12.22
반응형