Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Microsoft SQL Server 2008


Öne çıkan mesajlar

Mesaj tarihi:
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ı..
Mesaj tarihi:
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.
Mesaj tarihi:
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..
Mesaj tarihi:
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.
Mesaj tarihi:
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
Mesaj tarihi:
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.
Mesaj tarihi:
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
Mesaj tarihi:
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
Mesaj tarihi:
@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.
×
×
  • Yeni Oluştur...