deadea Mesaj tarihi: Aralık 10, 2009 Mesaj tarihi: Aralık 10, 2009 Express edition'ı (developer) windows 7 işletim sistemi olan laptop'a yükledim ama local'den bağlanamıyorum ! alla alla ? Xp de (masaüstü) tıkır tıkır çalışmıştı. Gerçi yüklerken Firewall'da sorun var. "Dont forget to open port" bilmem ne falan dedi. Sonra ben denedim girmedi. Sonra Firewall'da güvenilir programlara ekledim sql'i yine olmadı. Firewall'u kapadım yine olmadı..
deadea Mesaj tarihi: Aralık 15, 2009 Konuyu açan Mesaj tarihi: Aralık 15, 2009 yeah sql başlığı varken niye kirleteyim ortalığı dimi. neyse ALTER PROC getSalesByDate @startDate DATETIME, @finishDate DATETIME AS SELECT Products.ProductName, SUM([Order Details].Quantity) AS Total FROM Products INNER JOIN [Order Details] ON Products.ProductID = [Order Details].ProductID INNER JOIN Orders ON [Order Details].OrderID = Orders.OrderID WHERE Orders.OrderDate BETWEEN @startDate AND @finishDate GROUP BY Products.ProductName ORDER BY Products.ProductName böyle bi proc'umuz var, geriye çok sayıda satır ve iki kolon döndürüyor. 1. kolonda malumunuz ürünler, ikinci kolonda fiyatları geliyor diyim ben şimdilik.. peki fiyatların en altına hepsinin toplamını yazdırayım diyorum amma sum'la toplayıp sonra "as Total" kısmında ", SUM(Total)" tabiki diyemiyorum, Çünkü Total'i daha oluşturmadı kendiside bana Total ne diyor. toplasakta nasıl toplasak, sonuçta sum'la toplayacağım şey bir tablonun kolon'u değil.
riglous Mesaj tarihi: Aralık 15, 2009 Mesaj tarihi: Aralık 15, 2009 SQL Server'da analytic functions var mi bilmiyorum ama bak bakalim. Varsa bir kolona da SUM([Order Details].Quantity) over (partition by 1) dersin o kolonda tum toplami hesaplayip yazar. Tabi bu partition by kismina ekleyecegin herhangi bir kolon, group by'dan bagimsiz olarak aggregate eder..
riglous Mesaj tarihi: Aralık 15, 2009 Mesaj tarihi: Aralık 15, 2009 Ha tabi simdi aklima geldi, en sona union select 'ALL' as productname, sum([Order Details].Quantity) as total FROM Products INNER JOIN [Order Details] ON Products.ProductID = [Order Details].ProductID INNER JOIN Orders ON [Order Details].OrderID = Orders.OrderID WHERE Orders.OrderDate BETWEEN @startDate AND @finishDate dersen de en son satir olarak tum toplam doner.
deadea Mesaj tarihi: Aralık 16, 2009 Konuyu açan Mesaj tarihi: Aralık 16, 2009 da bu yeni bir select sorgusu, benim istediğim 3. column'un böyle gelmesi. Compute column yaparak birşeyler denedim ama yemiyor.. fak
riglous Mesaj tarihi: Aralık 16, 2009 Mesaj tarihi: Aralık 16, 2009 e varmis iste analytic function'lar ALTER PROC getSalesByDate @startDate DATETIME, @finishDate DATETIME AS SELECT Products.ProductName , SUM([Order Details].Quantity) AS Total , SUM([Order Details].Quantity) over (partition by 1) Grand_Total FROM Products INNER JOIN [Order Details] ON Products.ProductID = [Order Details].ProductID INNER JOIN Orders ON [Order Details].OrderID = Orders.OrderID WHERE Orders.OrderDate BETWEEN @startDate AND @finishDate GROUP BY Products.ProductName ORDER BY Products.ProductName
deadea Mesaj tarihi: Aralık 16, 2009 Konuyu açan Mesaj tarihi: Aralık 16, 2009 aggregate mantığını bilmiyorum ama senin sorguyu deneyince şöyle bir hata verdi. Msg 8120, Level 16, State 1, Line 3 Column 'Order Details.Quantity' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
riglous Mesaj tarihi: Aralık 16, 2009 Mesaj tarihi: Aralık 16, 2009 Tabi sacmalamisim ALTER PROC getSalesByDate @startDate DATETIME, @finishDate DATETIME AS SELECT distinct Products.ProductName , SUM([Order Details].Quantity) over (partition by Products.ProductName) AS Total , SUM([Order Details].Quantity) over (partition by 1) Grand_Total FROM Products INNER JOIN [Order Details] ON Products.ProductID = [Order Details].ProductID INNER JOIN Orders ON [Order Details].OrderID = Orders.OrderID WHERE Orders.OrderDate BETWEEN @startDate AND @finishDate ORDER BY Products.ProductName
reyou Mesaj tarihi: Aralık 16, 2009 Mesaj tarihi: Aralık 16, 2009 sole bi dene dicem ama? ALTER PROC Getsalesbydate @startDate DATETIME, @finishDate DATETIME AS SELECT products.productname FROM products INNER JOIN [Order Details] ON products.productid = [Order Details].productid INNER JOIN orders ON [Order Details].orderid = orders.orderid WHERE orders.orderdate BETWEEN @startDate AND @finishDate UNION ALL SELECT Sum([Order Details].quantity) FROM [Order Details] AS total GROUP BY products.productname ORDER BY products.productname
deadea Mesaj tarihi: Aralık 16, 2009 Konuyu açan Mesaj tarihi: Aralık 16, 2009 @riglous ; Budur! (tu) zihnine sağlık hocam eyw.. partition mantığını araştırim boş zamanım olunca çünkü o "over (partition by" ları falan hiç anlamadım. ama baştaki distinct de güzel olmuş :) gratz @reyou ; amaç tek select sorgusu içinde getirmek reyou. ayrı bir select sorgusunu istemiyoruz.
Öne çıkan mesajlar