SQL 문 구 는 날 짜 를 열 로 어떻게 사용 합 니까?

첫 번 째 로 오리지널 글 을 쓰 는데 여러분 많이 포함 해 주세요!오늘 한 친구 가 나 에 게 글 을 쓰 라 고 했 는데, 바로 SQL 2000 데이터베이스 아래 표 의 날짜 데 이 터 를 열 로 인쇄 보고 서 를 보 여 주 는 것 이다.요 구 는 다음 과 같 습 니 다.
 
2012-05-01
2012-05-02
2012-05-03
2012-05-04
지사
1000
1000
1000
1000
지사
1000
1000
1000
1000
 
쉽게 말 하면 천구 와 당일 팀 의 닛 산 치 를 따 지 는 것 이다.닛 산 이 뭔 지 묻 지 마.나 도 몰라.나의 원래 방법 은 응용 층 에서 데이터 베 이 스 를 여러 번 조회 하고 얻 은 결과 집 을 보고서 로 통합 하 는 것 이다.그러나 그 형 은 C + + 의 어떤 구성 요소 인 DAO 로 되 돌아 온 결과 집 을 프로그램 을 통 해 수정 할 수 없고 페이지 에 직접 보 여줄 수 밖 에 없 었 다.이것 은 정말 나의 목숨 을 앗 아 갔다.상세 한 연 구 를 통 해 다음 과 같은 문 구 를 썼 다.최종 적 으로 수 요 를 실현 할 수 있다.그 데 이 터 는 제 가 삽입 문 구 를 제공 하지 않 겠 습 니 다.
 
사실 간단 한 사 고 는 SQL 세 션 을 SQL 구문 으로 맞 추 는 것 이다.아 참, 다음 과 같은 방식 을 사용 하면 저장 과정 에서 보 내 는 것 을 권장 합 니 다. 저 는 게 으 르 면 쓰 지 않 았 습 니 다.많이 포함 시 켜 주세요.마지막 으로 말 해 야 할 것 은 시 계 를 만 들 때 중국어 로 하 는 것 은 정말 좋 지 않 으 니 영어 로 하 는 것 이 좋 겠 습 니 다.어쩌면 어떤 사람들 은 왜 예 가 중국어 인지 물 어 볼 지도 모른다.대답 은 시계 구조 야. 얘 가 줬 어. 바 뀌 면 못 알 아 볼 까 봐... 잔 념 아!구체 적 으로 각 문장의 의 미 는 주석 을 참조한다.다른 데이터베이스 라면 이 예 를 본 떠 쓸 수도 있다.원 리 는 변 하지 않 기 때문이다.유일 하 게 문제 가 있 는 것 은 시간 이 너무 많 으 면 SQL 세 션 이 너무 긴 문 제 를 일 으 킬 수 있다 는 것 이다.주의 가 필요 해!OK. 다른 건 코드 봐 요. 설명 안 할 게 요!
  
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[rcllr]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[rcllr]
GO

CREATE TABLE [dbo].[rcllr] (  [ ] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,  [ ] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,  [ ] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,  [ ] [int] NULL ,  [ ] [int] NULL ,  [ ] [int] NULL ,  [ ] [datetime] NULL ,  [ ] [numeric](18, 2) NULL ,  [ ] [int] NULL ,  [ ] [int] NULL ) ON [PRIMARY] GO  

declare @starttime datetime,@endtime datetime,@sql varchar(2000)

set @starttime = '2012-05-01';--    
set @endtime = '2012-05-06';--    
set @sql = 'select    ';--             

while @starttime < @endtime
begin
  print @starttime
  set @starttime = @starttime+1
  --'''         
  --'''+Convert(Varchar(10),@starttime,120)+'''      @starttime       '2012-05-05'
  set @sql = @sql +',(select sum(     ) from rcllr M where M.   =N.    and M.    ='''+Convert(Varchar(10),@starttime,120)+''') as '''+Convert(Varchar(10),@starttime,120)+''''
end

set @sql = @sql+' from rcllr N group by    '--           
exec(@sql) --  SQL

print @sql --  SQL

좋은 웹페이지 즐겨찾기