2009. 9. 25. 17:13
.Net Project/WindowServer2008
반응형
고객 상세정보 & 회원 로그인
주문 추가
고객이 이미 구입한 상품
[17] 고객 상세정보 : 회원리스트 (회원정보, 관리자 페이지) ---------------------------------------------------------------------- Create Procedure CustomerDetail ( @CustomerID Int ) As Select Top 1 * --모든것 출력 From Customers Inner Join MemberShip On Customers.CustomerID = MemberShip.CustomerID Where Customers.CustomerID = @CustomerID Go ---------------------------------------------------------------------- [18] 회원 로그인 ---------------------------------------------------------------------- Create Procedure CustomerLogin ( @UserID VarChar(50), @Password VarChar(50), @CustomerID Int Output ) As Select @CustomerID = CustomerID From MemberShip Where UserID = @UserID And PassWord = @Password IF @@ROWCOUNT < 1 Select @CustomerID = 0 Go |
주문 추가
[19] 주문 추가 : CheckOut.aspx에서 사용 ---------------------------------------------------------------------- Create Procedure OrderAdd ( @CustomerID Int, @OrderDate DateTime, @ShipDate DateTime, @TotalPrice Int, @OrderStatus VarChar(20), @Payment VarChar(20), @PaymentPrice Int, @PaymentInfo VarChar(20), @PaymentEndDate DateTime, @DeliveryInfo Int, @DeliveryStatus VarChar(20), @DeliveryEndDate DateTime, @OrderIP VarChar(15), @Password VarChar(20), --위 내용은 Orders 테이블에 @CartID VarChar(50), --위 내용은 ShoppingCart와 조인걸어서 OrderDetails 테이블에 @Message VarChar(50), --위 내용은 Message @CustomerName VarChar(50), @TelePhone VarChar(20), @MobilePhone VarChar(20), @ZipCode VarChar(7), @Address VarChar(100), @AddressDetail VarChar(50), --위 내용은 Delivery @OrderID Int Output ) As Begin Tran AddOrder --[1] Orders 테이블에 관련 정보 기록 Insert Into Orders ( CustomerID, OrderDate, ShipDate, TotalPrice, OrderStatus, Payment, PaymentPrice, PaymentInfo, PaymentEnddate, DeliveryStatus, DeliveryEndDate, OrderIP, Password ) Values ( @CustomerID, @OrderDate, @ShipDate, @TotalPrice, @OrderStatus, @Payment, @PaymentPrice, @PaymentInfo, @PaymentEnddate, @DeliveryStatus, @DeliveryEndDate, @OrderIP, @Password ) Select @OrderID = @@IDENTITY --현재 바로 주문된 OrderID값 가져오기 --[2] 현재 주문번호와 현재 쇼핑 카트 내용을 OrdersDetail 테이블로 저장 Insert Into OrderDetails ( OrderID, ProductID, Quantity, SellPrice, Price, Mileage ) Select @OrderID, ShoppingCart.ProductID, Quantity, Products.SellPrice, (Products.SellPrice * ShoppingCart.Quantity) As Price, Products.Mileage From ShoppingCart Inner Join Products On ShoppingCart.ProductID = Products.ProductID Where CartID = @CartID --[3] 주문 실행 후 현재 카트 아이디에 해당하는 쇼핑카트 내용 지우기 Exec ShoppingCartEmpty @CartId --[4] 남기고 싶은말 저장 Insert Into Message ( OrderID, Message ) Values ( @OrderID, @Message ) --[5]Delivery 테이블에 관련 정보 기록 Insert Into Delivery ( OrderID, CustomerName, TelePhone, MobilePhone, ZipCode, Address, AddressDetail ) Values ( @OrderID, @CustomerName, @TelePhone, @MobilePhone, @ZipCode, @Address, @AddressDetail ) Commit Tran Addorder Go |
[20] 주문 리스트(회원) : OrderList.aspx --------------------------------------------------------------------- Create Procedure OrderList ( @CustomerID Int ) As Select Orders.OrderID, CAST(Sum(OrderDetails.Quantity * OrderDetails.SellPrice) As Int) As TotalPrice, Orders.OrderDate, Orders.ShipDate From Orders Inner Join OrderDetails On Orders.OrderID = OrderDetails.OrderID Group By CustomerID, Orders.OrderID, Orders.OrderDate, Orders.ShipDate Having Orders.CustomerID = @CustomerID Go --------------------------------------------------------------------- [21]주문 리스트(비회원) --------------------------------------------------------------------- create Procedure OrdersListNonCustomer ( @OrderID Int, --주문번호 @Password VarChar(20) --비밀번호 ) As Select Orders.OrderID, CAST(Sum(OrderDetails.Quantity * OrderDetails.SellPrice) As Int) As TotalPrice, Orders.OrderDate, Orders.ShipDate From Orders Inner Join OrderDetails On Orders.OrderID = OrderDetails.OrderID Group By Password, Orders.OrderID, Orders.OrderDate, Orders.ShipDate Having Orders.OrderID = @OrderID And Orders.Password = @Password Go |
[22] 주문상세 : 특정 주문에 몇개의 제품들을 몇개씩 구매했는지 정보 ---------------------------------------------------------------------- Create Procedure OrdersDetail ( @OrderID Int, @OrderDate DateTime Output, @ShipDate DateTime Output, @TotalPrice Int Output ) As --[1] 현재 고객에 대한 주문일과 배송일에 대한 정보값을 반환 Select @OrderDate = OrderDate, @ShipDate = ShipDate From Orders Where OrderID = @OrderID IF @@ROWCOUNT = 1 Begin --[2] 처음으로 총 가격을 Output 매개변수 반환 Select @TotalPrice = CAST(sum(OrderDetails.Quantity * OrderDetails.SellPrice) As Int) From OrderDetails Where OrderID = @OrderID --[3] 그런다음, 주문 상세 정보값 반환 Select Products.ProductID, Products.ModelName, Products.ModelNumber, OrderDetails.SellPrice, OrderDetails.Quantity, (OrderDetails.Quantity * OrderDetails.SellPrice) As ExtendedAmount From OrderDetails Inner Join Products On OrderDetails.ProductID = Products.ProductID Where OrderID = @OrderID End Go |
고객이 이미 구입한 상품
--[23] 고객이 이미 구입한 상품 : AlsoBought.aspx Create Procedure CustomeAlsoBought ( @ProductID Int ) As Select Top 5 OrderDetails.ProductID, Products.ModelName, SUM(OrderDetails.Quantity) as TotalNum From OrderDetails Inner Join Products On OrderDetails.ProductID = Products.ProductID Where OrderID IN ( --ProductID에 해당하는 모든 주문에 대한 OrderID 값 반환 Select Distinct OrderID From OrderDetails Where ProductID = @ProductID ) And OrderDetails.ProductID <> @ProductID Group By OrderDetails.ProductID, Products.ModelName Order By TotalNum Desc Go |
반응형
'.Net Project > WindowServer2008' 카테고리의 다른 글
쿼리문 총 정리 T-Sql (1) | 2010.02.16 |
---|---|
36장 테이블 생성 (0) | 2009.09.29 |
35-5장 쇼핑몰 쿼리문 작성 (0) | 2009.09.25 |
35-4장 쇼핑몰 SQL 테이블 쿼리문 작성 (0) | 2009.09.23 |
35-3장 쇼핑몰 SQL 테이블 쿼리문 작성 (0) | 2009.09.23 |