Sıralama: Administration
Gruplar: Administrators
Katılan: 6.05.2014(UTC) Mesajlar: 670
19 Kere Teşekkür Etti. 152 Mesajına Toplam 253 Kere Teşekkür Edildi.
|
Originally Posted by: cengaver Merhaba Arkadaşlar, USD bazında günlük döviz alış kurlarını listelemem gerekiyor fakat veritabanında haftasonuna ve resmi tatil günlerine denk gelen tarihler için kur bilgisi yok. Ben, resmi tatil ve hafta sonlarında da geçerli bir kur değeri bulmak zorundayım, bunu nasıl bir select cümlesiyle çözebilirim? Yani özetlersek, iki tarih arasındaki tüm günlerin karşısına bir USD kur bilgisi çekmek istersem bunu nasıl bir select cümlesiyle yapmalıyım? Aslında çözüm basıt ama bunu SQL cümlesi haline getiremediğim için nasıl yazacağımı bilemiyorum. Çözüm şu aslında, yani öyle bir SELECT cümlesi olmalı ki olmayan bir tarihe denk gelindiğinde o tarihe en yakın bir önceki tarihin kur değerini okumalı... İlgilendiğiniz için teşekkürler, Aşağıdaki script SQL Server 2008 içindir ve kur tablosunun oluşturulmasını ve örnek verilerle doldurulmasını sağlar. Denemelerinizi yapmanız için bendeki yapıyı sizinle de paylaşmak istedim. Kod:SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
SET ANSI_PADDING ON GO
CREATE TABLE [dbo].[TDMS_Kurlar]( [Ref] [int] IDENTITY(1,1) NOT NULL, [Tarih] [datetime] NOT NULL, [Kod] [varchar](3) NOT NULL, [Carpan] [int] NOT NULL, [DovizAlis] [money] NOT NULL, [DovizSatis] [money] NOT NULL, [EfektifAlis] [money] NOT NULL, [EfektifSatis] [money] NOT NULL, [USDParite] [money] NOT NULL, [EuroParite] [money] NOT NULL, [DigerParite] [money] NOT NULL, CONSTRAINT [PK__TDMS_Kur__CAF0B45B3BA1BD0A] PRIMARY KEY CLUSTERED ( [Ref] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
GO
SET ANSI_PADDING OFF GO
ALTER TABLE [dbo].[TDMS_Kurlar] ADD CONSTRAINT [DF_TDMS_Kurlar_Carpan] DEFAULT ((1)) FOR [Carpan] GO
/* örnek veriler aşağıdadır. */
INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-14 00:00:00', 'EUR', 1, 2.69790, 2.70280, 2.69600, 2.70690, 0.00000, 0.00000, 1.17670); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-14 00:00:00', 'IRR', 100, 0.00010, 0.00010, 0.00000, 0.00000, 273.48000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-14 00:00:00', 'JPY', 100, 0.01960, 0.01970, 0.01950, 0.01980, 1.16920, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-14 00:00:00', 'USD', 1, 2.29270, 2.29680, 2.29110, 2.30020, 1.00000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-13 00:00:00', 'EUR', 1, 2.68990, 2.69480, 2.68800, 2.69880, 0.00000, 0.00000, 1.18100); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-13 00:00:00', 'IRR', 100, 0.00010, 0.00010, 0.00000, 0.00000, 273.14000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-13 00:00:00', 'JPY', 100, 0.01920, 0.01930, 0.01910, 0.01940, 1.18440, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-13 00:00:00', 'USD', 1, 2.27780, 2.28190, 2.27620, 2.28530, 1.00000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-12 00:00:00', 'EUR', 1, 2.70370, 2.70860, 2.70180, 2.71270, 0.00000, 0.00000, 1.18110); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-12 00:00:00', 'IRR', 100, 0.00010, 0.00010, 0.00000, 0.00000, 272.92000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-12 00:00:00', 'JPY', 100, 0.01920, 0.01930, 0.01910, 0.01940, 1.18970, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-12 00:00:00', 'USD', 1, 2.28910, 2.29320, 2.28750, 2.29660, 1.00000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-09 00:00:00', 'EUR', 1, 2.71690, 2.72180, 2.71500, 2.72590, 0.00000, 0.00000, 1.18100); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-09 00:00:00', 'IRR', 100, 0.00010, 0.00010, 0.00000, 0.00000, 272.94000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-09 00:00:00', 'JPY', 100, 0.01920, 0.01940, 0.01920, 0.01940, 1.19310, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-09 00:00:00', 'USD', 1, 2.30050, 2.30470, 2.29890, 2.30820, 1.00000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-08 00:00:00', 'EUR', 1, 2.71990, 2.72480, 2.71800, 2.72890, 0.00000, 0.00000, 1.17870); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-08 00:00:00', 'IRR', 100, 0.00010, 0.00010, 0.00000, 0.00000, 272.94000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-08 00:00:00', 'JPY', 100, 0.01920, 0.01930, 0.01910, 0.01940, 1.19780, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-08 00:00:00', 'USD', 1, 2.30760, 2.31180, 2.30600, 2.31530, 1.00000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-07 00:00:00', 'EUR', 1, 2.75670, 2.76170, 2.75480, 2.76580, 0.00000, 0.00000, 1.18540); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-07 00:00:00', 'IRR', 100, 0.00010, 0.00010, 0.00000, 0.00000, 272.63000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-07 00:00:00', 'JPY', 100, 0.01950, 0.01960, 0.01940, 0.01970, 1.19070, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-07 00:00:00', 'USD', 1, 2.32550, 2.32970, 2.32390, 2.33320, 1.00000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-06 00:00:00', 'EUR', 1, 2.77360, 2.77860, 2.77170, 2.78280, 0.00000, 0.00000, 1.19160); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-06 00:00:00', 'IRR', 100, 0.00850, 0.00860, 0.00000, 0.00000, 27232.00000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-06 00:00:00', 'JPY', 100, 1.95050, 1.96340, 1.94330, 1.97090, 119.05000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-06 00:00:00', 'USD', 1, 2.32770, 2.33190, 2.32610, 2.33540, 1.00000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-05 00:00:00', 'EUR', 1, 2.79310, 2.79810, 2.79110, 2.80230, 0.00000, 0.00000, 1.19300); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-05 00:00:00', 'IRR', 100, 0.00860, 0.00870, 0.00000, 0.00000, 27233.00000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-05 00:00:00', 'JPY', 100, 1.94150, 1.95440, 1.93430, 1.96180, 120.29000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-05 00:00:00', 'USD', 1, 2.34110, 2.34530, 2.33950, 2.34880, 1.00000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-02 00:00:00', 'EUR', 1, 2.82580, 2.83090, 2.82380, 2.83510, 0.00000, 0.00000, 1.20510); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-02 00:00:00', 'IRR', 100, 0.00860, 0.00870, 0.00000, 0.00000, 27174.00000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-02 00:00:00', 'JPY', 100, 1.94190, 1.95470, 1.93470, 1.96210, 120.47000, 0.00000, 0.00000); INSERT INTO dbo.TDMS_Kurlar ([Tarih], [Kod], [Carpan], [DovizAlis], [DovizSatis], [EfektifAlis], [EfektifSatis], [USDParite], [EuroParite], [DigerParite]) VALUES ('2015-01-02 00:00:00', 'USD', 1, 2.34490, 2.34910, 2.34330, 2.35260, 1.00000, 0.00000, 0.00000);
Merhabalar Veri tabanında o günlere ait bir veri yoksa ne yazıkki o değerleri alamazsın ama söyle birşey yapabilirsin ama işine yararmı bilmiyorum Mesala Cumartesi günü, geldi ve veri yok onun yerine cumayı basabilirsin |