Sık sık yayınlamıyorum, ama bir süredir kafamı duvara çarpıyordum ve uzmanlara ulaşacağımı düşündüm. Bu projeye danışmanlık verildiği için verildiğini lütfen unutmayın.Tek Bir Sütunda 12 Ay Ödeme Durumunu Kaydetme Yolu
Aylık ödeme durumları olan bir tablom var. Tüm 12 durumdan yola çıkarak eylemler oluşturmam gerekiyor, yani ilk kayıt “Tam Ücretli” eylemi alırken, ikincisi “Ocak ödemek gerekiyor” ve üçüncüsü “Hesap Bekletme” alacaktır.
DECLARE @Payments TABLE (January NVARCHAR(20), February NVARCHAR(20), March NVARCHAR(20), April NVARCHAR(20), May NVARCHAR(20), June NVARCHAR(20),
July NVARCHAR(20), August NVARCHAR(20), September NVARCHAR(20), October NVARCHAR(20), November NVARCHAR(20), December NVARCHAR(20))
INSERT @Payments VALUES
('Paid','Paid','Paid','Paid','Paid','Paid','Paid','Paid','Paid','Paid','Paid','Paid'),
('Unpaid','Paid','Paid','Paid','Paid','Paid','Paid','Paid','Paid','Paid','Paid','Paid'),
('Paid','Paid','Paid','Paid','Paid','Paid','Paid','Paid','Paid','Paid','Paid','Account Hold')
Bunu işlemek için bir öneriniz var mı? Geldiğim en iyi şey, tüm ödeme durumlarını içeren tek bir sütundur, bu yüzden en azından tek bir alana atıfta bulunabilirim (yani 111111111111 "Tam Ücretli," 211111111111 "," Ocak Ayını Ödemeli "anlamına gelir) vs.) Bana yardım edeceğinden emin değilim, ama tüm permütasyonları elle hesaplamaktan daha iyi bir şeye ihtiyacım var.Herhangi bir yardım, takdire değer.
Sen int 12 bit kullanarak yapabileceğini, ancak bir tasarım olması gibi geliyor (db) bundan önce. Bence daha fazla değer/durum için 1 sütun kullanmak nadiren iyi olur. – cantSleepNow
En az 12 ayrı satır kullanmalısınız, Müşteri_Number, Pay_Year, Pay_Month gibi bir şey isteyebilirsiniz. Bu daha iyi olacak ve birden çok yıl boyunca takip edilecek. – Chuck
Ben bir kez aynı sorun vardı ve aynı zamanda öneri (12 bit) ile gitti ile uğraşmak çok hantal. Bu özellikle, standart T-SQL'in ikili'nin int'ye (ve tekrar tekrar) dönüştürülmesini desteklememesi gerçeğinden kaynaklanmaktadır. Kendi dönüştürücünüzü programlamanız gerekecek: http://stackoverflow.com/questions/127116/sql-server-convert-integer-to-binary-string Yani, UNPIVOT ile gidip iki sütunda saklamak istiyorum. : Ay, Durum. – Ralph