Merhaba Her günün sonunda durum = 'AA' olan farklı Ev Numaralarının kapanış sayılarını hesaplama gereği var.sql her günün sonunda farklı sayıları kapatıyor
Günün sonunda 19/03/2016 - eğer 3 ayrı evimiz var H1, H2, H3, AA sayısı = 3 20/03/2016 tarihinde, AA ile tekrar H2 kaydımız varsa, ve h4 , AA ile h5, kapanış dengesi = 5 21/03/2016 tarihinde evlerin 2 AA dışına taşınırsa ve başka bir 3 AA'ya eklenirse, sayı = 6 olacak
Birisi bana yardım edebilir misiniz Bunu çözmek için sql.
Veritabanı = Netezza.
Temel olarak, zamanın başlangıcından o güne kadar olan ve AA için statüsüne sahip olan, her gün için her gün için Evlerin Kapanış sayısı olarak farklı Evlerin sayısını saymam gerekiyor. [CLsBal, türetme gerekli]
ReleaseDate|HNo|Status|HType|RelReason| ValidFrm | ValidTo |ClsBal
-------------------------------------------------------------------
01-Jan-16 H1 AA R XYZ 01-Jan-16 01-Jan-16 2
01-Jan-16 H2 AA R XYZ 01-Jan-16 31/12/2999 2
02-Jan-16 H3 AA R XYZ 02-Jan-16 31/12/2999 4
02-Jan-16 H4 AA R XYZ 02-Jan-16 31/12/2999 4
02-Jan-16 H5 AA R XYZ 02-Jan-16 31/12/2999 4
02-Jan-16 H1 AB R XYZ 02-Jan-16 31/12/2999 4
03-Jan-16 H6 AA R XYZ 02-Jan-16 31/12/2999 8
03-Jan-16 H7 AA R XYZ 02-Jan-16 31/12/2999 8
03-Jan-16 H8 AA R XYZ 02-Jan-16 31/12/2999 8
03-Jan-16 H9 AA R XYZ 02-Jan-16 31/12/2999 8
03-Jan-16 H3 AA R XYZ 02-Jan-16 31/12/2999 8
aşağıdaki kod belirli bir gün için kapanış Denge bulmak için mantık edilir: Buna ihtiyacım
select cast('31-dec-2015' as date) as RELEASEDATE,
HNo,
HType,
count(distinct Hno) as ClosingCount
from HouseChanges
where ReleaseDate <= '31-dec-2015'
and Status='AA' -- House Status
and ValidTo >= '31-dec-2015'
group by RelReason, Htype
31-Aralık-2015
gelen her günü için hesaplanacakBunu çözmek için özyinelemeli bir CTE kullanabilir miyiz?
Denedim ama hata yapmaya devam ediyor ve Aginity hata kodlarını döndürmede çok iyi değil.
with closing as (
select cast('31-dec-2015' as date) as RELEASEDATE,
HNo,
HType,
count(distinct Hno) as ClosingCount
from HouseChanges
where ReleaseDate <= '31-dec-2015'
and
Status='AA' -- House Status
and
VALID_TO_DATE >= '31-dec-2015'
group by RelReason, Htype
union all
select max(Release_date) as RELEASEDATE,
HNo,
HType,
count(distinct Hno) as ClosingCount
from HouseChanges t1
inner join closing t2
on t1.Release_date <= t2. RELEASEDATE++interval '1 days'
where
Status='AA' -- House Status
and
VALID_TO_DATE >= t2. RELEASEDATE+interval '1 days'
and
t2. RELEASEDATE<=current_date
group by RelReason, Htype
)
select * from closing
Netezza'nın reccursive IGK'ya desteklemiyor çıkıyor:
Bunun gibi bir şey kullandı. Birisi bir CTE kullanmadan bunu yapmayı nasıl başarabilirim?
Verilerinizin nasıl göründüğünü ekler misiniz? –
Okul/ev işi veya iş gereksinimi? – jarlh
Ne tür bir veritabanı: SQL-sunucu, MySQL, PostgreSQL, Oracle, vb? Şimdiye kadar ne denedin? Nerede kaldın? –