ورود

View Full Version : گفتگو: سورت جدول براساس تاریخ و سپس اضافه کردن یک فیلد ردیف



mina.net
پنج شنبه 31 اردیبهشت 1388, 20:42 عصر
سلام دوستان
من می خوام یک جدول رو براساس یک فیلد(تاریخ) سورت کنم و سپس یک فیلد به نام ردیف که یکی یکی به ترتیب همون چیزی که سورت شده بهش مقدار بدم چیکار باید کرد

araelectronic@ymail.com
پنج شنبه 31 اردیبهشت 1388, 22:35 عصر
با سلام
دوست عزیز شما در گزارشگیری میخاهید بصورت مرتب شده بگیرید یا جدول را میخواهید مرتب کنید؟

mina.net
پنج شنبه 31 اردیبهشت 1388, 23:46 عصر
من برای تهیه یک گزارش لازم دارم که براساس تاریخ مرتب بشه و سپس اعمالی روش انجام بشه از اونجای که تاریخ ممکنه تکراری بشه لازمه تا یک فیلد دیگه مثل ردیف قرار بدیم.
نگید که یک فیل بسازید از اول چون به دلایلی نمی شه. اگه لطف کنید راهنمایی کنید ممنون می شم.

pesar irooni
جمعه 01 خرداد 1388, 01:11 صبح
باید یه فیلد مجازی بسازی.
این کوئری رو روی جدول Northwind اجرا کن تا چیزی که میخوای رو ببینی.

select CustomerID,
(SELECT COUNT(*) FROM customers as e2 WHERE e2.CustomerID >= e.CustomerID ) AS rownumber
from customers as e
order by CustomerID desc

و یا :

select rownumber = count(*),c1.CustomerID
from customers as c1
inner join customers as c2 on (c1.CustomerID > c2.CustomerID)
group By(c1.CustomerID)
order by c1.CustomerID

MSDN این راه رو پیشنهاد کرده که تو sql2000 جواب نمیده. واسه 2005 هستش.

SELECT FirstName, LastName, ROW_NUMBER() OVER(ORDER BY SalesYTD DESC) AS 'Row Number', SalesYTD, PostalCode
FROM Sales.vSalesPerson
WHERE TerritoryName IS NOT NULL AND SalesYTD <> 0;

N_D
جمعه 01 خرداد 1388, 15:31 عصر
روش Count زمانیکه تعداد رکورد ها زیاد باشند بسیار کند می باشد
این روش مشکل شما رو حل میکنه رو تعداد بالا هم خوب جواب داده

select
'Row'= Identity(int,1,1),CustomerID
Into #TEMP
from customers as e
order by CustomerID desc

Select * from #TEMP

aliila
یک شنبه 03 خرداد 1388, 18:30 عصر
SELECT SalesOrderID, OrderDate,
ROW_NUMBER() OVER (order by OrderDate)as RowNumber
FROM Sales.SalesOrderHeader

mpmsoft
یک شنبه 03 خرداد 1388, 21:51 عصر
دوستان فکر نمی کنم بدست آوردن ستون ردیف با SQL مناسب باشه چون کاربر ممکن هست سورت رو بروی گرید عوض کنه

بنده یک ستون رو بصورت ثابت در گرید قرار دادم و مقدار ردیف رو در اون قرار دادم

توسط DB True

mina.net
دوشنبه 04 خرداد 1388, 16:02 عصر
دوستان فکر نمی کنم بدست آوردن ستون ردیف با SQL مناسب باشه چون کاربر ممکن هست سورت رو بروی گرید عوض کنه

بنده یک ستون رو بصورت ثابت در گرید قرار دادم و مقدار ردیف رو در اون قرار دادم

توسط DB True

دوست عزیز ترتیب ستونها ی من ثابت نیست و هر دفعه تغییر می کنه. من خیلی SQL نمی دونم منظور از DB True چی هست.