פורסם 2008 בדצמבר 2916 שנים אוקיי אז יש לי Stored Procedure הבאה: שילוב של כמה SELECT כדי למשוך נתונים ממס' טבלאות- Auctions , Profile , Bidsעכשיו הבעיה היא שאם אף אחד לא עשה BID , הווה אומר השורה ב BID ריקה שאר הנתונים לא חוזרים , וזה מציק כי אני רוצה לקבל את הנתונים חזרה בין אם מישהו עשה BID ובין אם לאהנה הפונקציה ALTER PROCEDURE dbo.wcbs_auction_summery ( @AuctionID int )ASSELECT x.*, y.* , z.*FROM (SELECT a.AuctionTitle , a.StartingPrice as 'Starting Bid' , a.BuyoutAmount as 'Buyout Price' , a.DatePublished ,datediff(day , getdate() , a.DateOfExpire) as 'Time till end' , a.DateOfExpire , p.City , p.CountryFROM Auctions a INNER JOIN ProfileTable_1 p ON a.UserID = p.UserIDWHERE a.AuctionID = @AuctionID) x ,(SELECT u.UserName as 'Highest Bidder' , max(b.BidAmount)as 'Current Bid'FROM Bids bINNER JOIN aspnet_Users uON b.UserID = u.UserIDWHERE b.AuctionID = @AuctionIDGROUP BY u.UserName) y ,(SELECT count(*) as '# of Bids' FROM Bids WHERE AuctionID = @AuctionID) z
פורסם 2008 בדצמבר 3016 שנים אם הבנתי נכון:תצרף לטבלה גם timestampומתי שחוזרת שורה ריקה (כשאף אחד לא עשה BID)פשוט שיחזיר את הנתונים האחרונים שהוכנסו(אותם תשלוף אחרי שתמיין את הטבלה לפי הtimestamp)
פורסם 2008 בדצמבר 3016 שנים הייאני מכיר טוב SQL של אורקל, ומה שכתבת פה טיפה שונה (אני לא יודע בדיוק של איזה DATABASE זה).בכל מקרה, באורקל יש מה שנקרא OUTER JOIN. אתה מוסיף סימן (+) מימין לתנאי , למשל(+) where bid=2 זה מביא לך גם את הרשומות שבהן bid=nullאני לא יודע איך בדיוק התחביר ב DATABASE שלך, אבל אני מניח שגם בו יש אפשרות ל OUTER JOIN.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.