Soran
Aylık 1 0 oranını hesaplama

Soru
-
Merhaba,
Bana göre karmaşık bir sorgu hakkında yardımlarınıcı rica edeceğim.
Aşağıda sorgumuz ve gelen sonuç bulunmakta, (sonuç daha uzun ama ben sadece bir tane terminalin datasını ekledim)
MONEY_SUPPLY=1 Para var MONEY_SUPPLY=0 Para yok demek, bu mesajlar da talep edildikçe geldiği için bir düzeni bulunmuyor, yani bir kaç gün 0 geliyor sonra 1 geliyor.
Bir terminalin 1 ay boyunca ne kadar süre ile para var ve yok olduğu oranını nasıl çıkartabilirim?
Teşekkürler
SELECT A.TERMINAL_ID, A.MONEY_SUPPLY, convert(varchar(16),A.UPDATE_DATE,120) AS UPDATE_DATE FROM ATM.ATM.ATM_SUPPLY_LOG A (NOLOCK) where A.TERMINAL_ID LIKE 'PT%' AND A.UPDATE_DATE BETWEEN '20220101' AND '20220201' ORDER BY A.TERMINAL_ID,A.UPDATE_DATE ASC
Tüm Yanıtlar
-
Bu 3 kolonu group by ile kullanın, ama tarih alanını date e convert edin. Bir de count alın.
Not: Tarih alanı nvarchar kullanmak hatalı bir tercihtir, ileride sorun olabilir. Yapabiliyorsanız sqlde yer alan tarih tiplerinden birisinde saklayın. smalldatetime işinizi görür gibi.Altan Özdemir
-
Teşekkürler,
smalldatetime'ı gibi düzelttim ancak 1 ve 0 oranını nasıl alabilirim anlayamadım, 1 ayda ne kadar süre 1 ne kadar süre 0 olduğunun oranına ihityacım var.
MONEY_SUPPLY=1 Para var MONEY_SUPPLY=0 Para yok demek, bu mesajlar da talep edildikçe geldiği için bir düzeni bulunmuyor, yani bir kaç gün 0 geliyor sonra 1 geliyor.
Bir terminalin 1 ay boyunca ne kadar süre ile para var ve yok olduğu oranını nasıl çıkartabilirim?
SELECT A.TERMINAL_ID, A.MONEY_SUPPLY, convert(smalldatetime,A.UPDATE_DATE,120) AS UPDATE_DATE FROM ATM.ATM.ATM_SUPPLY_LOG A (NOLOCK) where A.TERMINAL_ID LIKE 'PT%' AND A.UPDATE_DATE BETWEEN '20220101' AND '20220201' ORDER BY A.TERMINAL_ID,A.UPDATE_DATE ASC
-