2010년 12월 10일 금요일

ASP Cint Int 반올림 문제

ASP Cint Int 반올림 문제
- Cint형의 경우 반올림시 가장 가까운 짝수를 반환한다..
0.5 -> 2, 1.5->2, 2.5->4, 3.5->4

참조: ♬ OK! Programming >> ASP - 변환 관련 함수 (Google 사이드위키에서 보기)

2010년 12월 9일 목요일

Table design

이쁘장한 테이블을 만들기 위한 CSS 를 모아 놓은 갤러리 입니다.

참조: Data Tables and Cascading Style Sheets Gallery (Google 사이드위키에서 보기)

MS-SQL 2005 Pivot Table

지랄금지 - ☆ 까만콩 :: MS-SQL 2005 Pivot Table:




mssql 2005 부터 지원 되는 pivot table 기능

동적 pivot도 설명이 되어 있네요..



DECLARE @Prod varchar(2000)
SET @Prod = ''
SELECT @Prod = @Prod + '[' + Product + '],'
FROM (SELECT Distinct Product FROM Orders) A


SET @Prod = LEFT(@Prod, LEN(@Prod) - 1)
EXEC ('SELECT * FROM Orders
PIVOT ( SUM(Quantity) FOR Product IN (' + @Prod + ')
) AS PVT')
GO

2010년 11월 30일 화요일

SQL Query - 전일과 금일 판매량의 합을 구하는 쿼리

SQL Query 중에 집합쿼리를 사용해서 해결하지 못하고

Cursor를 이용해서 구할수 밖에 없는 문제중 하나 ..

전체 영업 데이터중에서 하루 전판매량과 당일 판매량의 합을 구하는 Query 이다..



SqlServerMVP 53( SqlServerDeepDives) 책의 예제 chat4.4



USE AdventureWorks;
SET NOCOUNT ON;

DECLARE @Results TABLE
       (CustomerID int NOT NULL,
        OrderDate datetime NOT NULL,
        SalesOrderID int NOT NULL,
        TotalDue money NOT NULL,
        RunningTotal money NULL,
        Rnk int NOT NULL,
        PRIMARY KEY (Rnk, CustomerID));

INSERT INTO @Results(CustomerID, OrderDate, SalesOrderID, TotalDue,
                     RunningTotal, Rnk)
SELECT CustomerID, OrderDate, SalesOrderID, TotalDue, TotalDue,
       RANK() OVER (PARTITION BY CustomerID
                    ORDER BY     OrderDate,
                                 SalesOrderID)
FROM   Sales.SalesOrderHeader;

DECLARE @Rank int,
        @RowCount int;
SET     @Rank = 1;
SET     @RowCount = 1;

WHILE @RowCount > 0
BEGIN;
  SET @Rank = @Rank + 1;

  UPDATE     nxt
  SET        RunningTotal    = prv.RunningTotal + nxt.TotalDue
  FROM       @Results       AS nxt
  INNER JOIN @Results       AS prv
        ON   prv.CustomerID  = nxt.CustomerID
        AND  prv.Rnk         = @Rank- 1
  WHERE      nxt.Rnk         = @Rank;

  SET @RowCount = @@ROWCOUNT;
END;

SELECT   CustomerID, OrderDate, SalesOrderID, TotalDue, RunningTotal
FROM     @Results
ORDER BY CustomerID, OrderDate, SalesOrderID;