24/12/2021, 00:26
Access Sorguda Yürüyen Bakiye
24/12/2021, 00:35
berduş
servera View ekleyip onun üzerinden toplam almayı yaptım ama sıralamayı sormam gerek,
row number oluşturmak için tablonuzdaki hangi alanlara göre sıralama yapılmalı?
ben sıralamayı
row number oluşturmak için tablonuzdaki hangi alanlara göre sıralama yapılmalı?
ben sıralamayı
CAST(ROW_NUMBER() OVER(ORDER BY #msg_s_0085,msg_s_0098) as int) AS xRow
ben sıralamayı #msg_s_0085,msg_s_0098 alanlarına göre yaptım ilk alan yanılmıyorsam kullanıcı adı 2. alan ise işlem tarihi sıralama doğru mu? 24/12/2021, 10:50
dogan.importexport
(24/12/2021, 00:35)berduş yazdı: servera View ekleyip onun üzerinden toplam almayı yaptım ama sıralamayı sormam gerek,
row number oluşturmak için tablonuzdaki hangi alanlara göre sıralama yapılmalı?
ben sıralamayı
ben sıralamayı #msg_s_0085,msg_s_0098 alanlarına göre yaptım ilk alan yanılmıyorsam kullanıcı adı 2. alan ise işlem tarihi sıralama doğru mu?CAST(ROW_NUMBER() OVER(ORDER BY #msg_s_0085,msg_s_0098) as int) AS xRow
Doğru üstadım 2.ci alan tarih
saygılar
(24/12/2021, 00:26)hedefkaya yazdı: örnek ekledim kontrol edermisin
Üstadım Benzersiz ID değişince bakiye kısmını hatalı hale getiriyor. Ben serverde benzersiz alan varsa onuda bakacağım tabloyu tekrar göndereceğim
Saygılar
24/12/2021, 10:55
berduş
Benzersiz id'in işlem sırasına göre olması önemli
Uygun bir zamanda ad ve tarihe gore rownumber ekleyerek View oluşturma kodunu gönderirim işlemi ona gore yaparix
Uygun bir zamanda ad ve tarihe gore rownumber ekleyerek View oluşturma kodunu gönderirim işlemi ona gore yaparix
24/12/2021, 12:28
berduş
öncelikle Sql serverı açıp veritabanını seçin -->New Query'ye basıp yeni sorgu oluşturma penceresini açıp aşağıdaki kodu yazın
Not ben verdiğiniz adlara göre yaptım siz kendi çalışmanızdaki/serverdaki adları kullanmalısınız
access veri tabanınıza bu Viewi bağlayın
Accesste yeni bir sorgu oluşturup sorgu koduna aşağıdaki kodu yazın
CAST(ROW_NUMBER() OVER(ORDER BY #msg_s_0085,msg_s_0098) as int) bu kod satır numarsını sayısal yapmak için kullanılıyor eğer tablonuzda int sınırını aşan miktarda veri varsa as int yerine daha büyük bir tür de seçilebilir. serverlardan çok anlamam o nedenle hatalı olabilirim
Not ben verdiğiniz adlara göre yaptım siz kendi çalışmanızdaki/serverdaki adları kullanmalısınız
CREATE VIEW view_SQLKASA1
AS
select *, CAST(ROW_NUMBER() OVER(ORDER BY #msg_s_0085,msg_s_0098) as int) AS xRow
from [SQLKASA1]
bu kodu seçip F5'e bastığınızda view_SQLKASA1 adında bir view oluşuraccess veri tabanınıza bu Viewi bağlayın
Accesste yeni bir sorgu oluşturup sorgu koduna aşağıdaki kodu yazın
SELECT A.[#msg_S_0200], A.[#msg_S_0201], A.msg_S_0089, A.msg_S_0090, A.msg_S_0091, A.msg_S_0094, A.msg_S_0003, A.[#msg_S_0085], (select sum(dbo_view_SQLKASA1.[msg_S_0101\T])-sum(dbo_view_SQLKASA1.[msg_S_0102\T]) from dbo_view_SQLKASA1 where dbo_view_SQLKASA1.[#msg_S_0085]=A.[#msg_S_0085] and dbo_view_SQLKASA1.[xRow]<=A.[xRow]) AS Bakiye, A.[msg_S_0101\T], A.[msg_S_0102\T], A.xRow
FROM dbo_view_SQLKASA1 AS A
WHERE (((A.[#msg_S_0200])="100.01"))
ORDER BY A.xRow;
CAST(ROW_NUMBER() OVER(ORDER BY #msg_s_0085,msg_s_0098) as int) bu kod satır numarsını sayısal yapmak için kullanılıyor eğer tablonuzda int sınırını aşan miktarda veri varsa as int yerine daha büyük bir tür de seçilebilir. serverlardan çok anlamam o nedenle hatalı olabilirim
24/12/2021, 15:57
berduş
şimdi fark ettim hem msg_S_0115 alanında hem de #msg_s_0085 alanlarında isim var ayrıca bir kaç farklı yerde de tarih alanı var
bakiye hangi alanlara göre alınacak? Müşteri kimliği hangi alan işlem tarihi yada sıralama alanı hangi alan?
bakiye hangi alanlara göre alınacak? Müşteri kimliği hangi alan işlem tarihi yada sıralama alanı hangi alan?