Son Alis Tarihine Göre bir ürünün fiyatı nasıl bulunur

Acoupotan

Forum Üyesi
22 Eyl 2022
166
0
0
Egypt
Merhaba Arkadaşlar

MS SQL üzerinde 2 adet tablom yer alıyor bu tablolardan 1 tanesi Master (Alis) diğeri Detail (AlisDetay) seklinde*
Bu tablolar içerisinde gelen faturalar ve içeriğindeki ürünler tutuluyor.

Şimdi geleyim problemin detayına
Amacım gelen faturalar içerisindeki ürünlerin*son geliş tarihine*göre son fiyatını almaya çalışıyorum
Aynı tarih içerisinde aynı ürün için 1 den fazla fatura gelebilmektedir.*
Bu durumda son kayıt edilen ürünün fiyatı geçerli olacaktır.*
Bunu sağlayan AlisDetay tablosundaki IdAlisDetay alanıdır.

NOT
Bu işlemi bir alt fonksiyon yazmadan yapmaya çalışıyorum.
IdUrun ve Fiyat şeklinde olanı aşağıdaki scriptte yer aldığı şekilde*çözümlendi.
Fakat*IdUrun, FaturaTarihi, NetFiyat şeklinde daha pratik bir çözüm yolu varmıdır.
Amacım bu sorguyu bir view yada procedure*haline getirip AlisDetay tablosundaki tüm ürünlerin son alış tarihini ve*son fiyatlarını bir liste halinde elde etmektir.

Şimdiden zaman ayıran arkadaşlara teşekkürler

ÖRNEK Tablolar, Örnek sorgu*ve Veri içerikleri aşağıdaki şekildedir.

Kod:

* *select SONFATID.IdUrun, Dty.NetFiyat
* *from (select TRHLI.IdUrun, max(TUMLISTE.IdAlis) as SONID
* * * * * *from (select AD.IdUrun, max(A.FaturaTarihi) as SONTARIH
* * * * * * * * * *from AlisDetay AD
* * * * * * * * * * * * inner join Alis A on A.IdAlis = AD.IdAlis
* * * * * * * * * group by AD.IdUrun
* * * * * * * * *) as TRHLI
* * * * * * * * *inner join (select AD.IdUrun, A.FaturaTarihi, A.IdAlis
* * * * * * * * * * * * * * * *from AlisDetay AD
* * * * * * * * * * * * * * * * * * inner join Alis A on A.IdAlis = AD.IdAlis) as TUMLISTE on TUMLISTE.IdUrun = TRHLI.IdUrun and TUMLISTE.FaturaTarihi = TRHLI.SONTARIH
* * * * * * * * * * * * * * * group by TRHLI.IdUrun) as SONFATID
* * * * * * * * *inner join AlisDetay Dty on Dty.IdUrun = SONFATID.IdUrun and Dty.IdAlis = SONFATID.SONID



Kod:

USE [TEST]
GO
/****** Object: *Table [dbo].[Alis] * *Script Date: 27.08.2020 17:45:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Alis](
[IdAlis] [int] NOT NULL,
[FaturaTarihi] [datetime] NULL,
CONSTRAINT [PK_Alis] PRIMARY KEY CLUSTERED
(
[IdAlis] 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
/****** Object: *Table [dbo].[AlisDetay] * *Script Date: 27.08.2020 17:45:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[AlisDetay](
[IdAlisDetay] [int] IDENTITY(1,1) NOT NULL,
[IdAlis] [int] NULL,
[IdUrun] [int] NULL,
[NetFiyat] [decimal](18, 2) NULL,
CONSTRAINT [PK_AlisDetay] PRIMARY KEY CLUSTERED
(
[IdAlisDetay] 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
INSERT [dbo].[Alis] ([IdAlis], [FaturaTarihi]) VALUES (1, CAST(N'2020-08-01T00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Alis] ([IdAlis], [FaturaTarihi]) VALUES (2, CAST(N'2020-08-01T00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Alis] ([IdAlis], [FaturaTarihi]) VALUES (3, CAST(N'2020-08-01T00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Alis] ([IdAlis], [FaturaTarihi]) VALUES (4, CAST(N'2020-08-05T00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Alis] ([IdAlis], [FaturaTarihi]) VALUES (5, CAST(N'2020-08-05T00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Alis] ([IdAlis], [FaturaTarihi]) VALUES (6, CAST(N'2020-08-06T00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Alis] ([IdAlis], [FaturaTarihi]) VALUES (7, CAST(N'2020-08-06T00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Alis] ([IdAlis], [FaturaTarihi]) VALUES (8, CAST(N'2020-08-06T00:00:00.000' AS DateTime))
GO
INSERT [dbo].[Alis] ([IdAlis], [FaturaTarihi]) VALUES (9, CAST(N'2020-08-06T00:00:00.000' AS DateTime))
GO
SET IDENTITY_INSERT [dbo].[AlisDetay] ON
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (1, 1, 1, CAST(5.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (2, 1, 2, CAST(5.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (3, 1, 3, CAST(5.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (4, 2, 1, CAST(3.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (5, 2, 2, CAST(3.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (6, 2, 2, CAST(3.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (7, 3, 1, CAST(2.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (8, 3, 2, CAST(2.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (9, 3, 3, CAST(2.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (10, 4, 1, CAST(10.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (11, 4, 2, CAST(5.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (12, 5, 3, CAST(3.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (13, 6, 1, CAST(4.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (14, 6, 2, CAST(4.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (15, 6, 3, CAST(4.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (16, 7, 2, CAST(8.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (17, 8, 1, CAST(2.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (18, 8, 2, CAST(6.50 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (19, 9, 1, CAST(3.50 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (20, 9, 2, CAST(4.50 AS Decimal(18, 2)))
GO
INSERT [dbo].[AlisDetay] ([IdAlisDetay], [IdAlis], [IdUrun], [NetFiyat]) VALUES (21, 9, 3, CAST(5.50 AS Decimal(18, 2)))
GO
SET IDENTITY_INSERT [dbo].[AlisDetay] OFF
GO
 

Genel Forum

Türkçe Forum Siteleri

İnternette bilgi paylaşımı ve tartışma ortamı arayanlar için forum siteleri uzun yıllardır popüler bir tercih olmuştur. Her yaştan ve ilgi alanından kullanıcıya hitap eden genel forum siteleri, teknoloji, oyun, kültür ve daha pek çok konuda geniş içerik sunmaktadır. Bu platformlar, katılımcıların hem öğrenme hem de eğlenceli vakit geçirme ihtiyaçlarını karşılamaktadır.

Genel Forum Sitesi

İnternette Türkçe forumlar üzerinden içerik paylaşmak, dil bariyerini ortadan kaldırarak yerel kültüre uygun bir deneyim sunar. Türkçe forum siteleri, kullanıcıların bilgiye kolayca ulaşabileceği, aynı zamanda sosyal ve eğlenceli paylaşımlar yapabileceği platformlar oluşturur. Türkiye'deki internet kullanıcıları için bu forumlar, ilgi çekici konularda derinlemesine sohbetler sunar.

Genel Forum Siteleri

Günlük hayatın stresinden uzaklaşmak isteyenler için eğlenceli forumlar, keyifli bir alternatif sunar. Farklı hobilere ve ilgi alanlarına yönelik içeriklerle dolu olan bu forum paylaşım siteleri, kullanıcılarına samimi bir ortamda vakit geçirme fırsatı sunarken, aynı zamanda yeni insanlarla tanışma imkanı da sağlar. Eğlenceli paylaşımlar ve interaktif etkinliklerle dolu olan bu platformlar, hem öğrenmeyi hem de keyifli vakit geçirmeyi bir arada sunar.

İnternette yeni bir topluluk arayan ya da bilgi alışverişi yapmak isteyenler için genel forum siteleri harika bir başlangıç noktasıdır. Geniş bir kullanıcı kitlesine hitap eden Türkçe forumlar, herkesin ilgisini çekecek konularla doludur. Siz de bu platformlara katılarak, kendi ilgi alanlarınıza uygun başlıklarda sohbetlere katılabilir ve katkıda bulunabilirsiniz. 

Not : Lütfen Çekim Paylaşım Forumları için sitemizi kullanmayın.

Üst