sql giriş çıkış sorgusu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

sql giriş çıkış sorgusu

Mesaj gönderen erdogan_ozkaya »

Merhaba Arkadaşlar,

SATIS_DETAY tabloda giriş çıkışları tutuyorum aşağıdaki kod ile nekadar girmiş nekadar çıkmış ona bakıyorum ama bir türlü doğru sonuca ulaşamıyorum 2 adet giriş iki adet çıkış olan bir ürüne 4 adet giriş diyor nerede hata yapıyorum acaba ?

teşekkürler

Kod: Tümünü seç

SELECT SK.URUN_KIMLIK, SK.URUN_ACIKLAMA, SK.SATIS_FIYATI, SK.ALIS_FIYATI, 
ISNULL(SUM(CKN.URUN_MIKTARI), 0) AS CIKAN, 
ISNULL(SUM(GRN.URUN_MIKTARI), 0) AS GIREN, 

ISNULL(SUM(GRN.URUN_MIKTARI), 0) - ISNULL(SUM(CKN.URUN_MIKTARI), 0) AS DEPO_KALAN, 
ISNULL(SUM(SK.ALIS_FIYATI), 0)  * ISNULL(SUM(GRN.URUN_MIKTARI), 0) AS GIRIS_TOPLAM_TUTAR, 
ISNULL(SUM(SK.SATIS_FIYATI), 0) * ISNULL(SUM(CKN.URUN_MIKTARI), 0) AS CIKIS_TOPLAM_TUTAR, 
ISNULL(SUM(SK.SATIS_FIYATI), 0) * 
ISNULL(SUM(CKN.URUN_MIKTARI), 0) - 
ISNULL(SUM(SK.ALIS_FIYATI), 0) * 
ISNULL(SUM(GRN.URUN_MIKTARI), 0) AS KAR_ZARAR

FROM URUN_KARTLARI AS SK LEFT OUTER JOIN
SATIS_DETAYI AS CKN ON CKN.URUN_KIMLIK = SK.URUN_KIMLIK AND CKN.FIS_TURU = 'Satış Fişi' AND CKN.HESAP_DURUMU = 'Kapalı Satış' LEFT OUTER JOIN
SATIS_DETAYI AS GRN ON GRN.URUN_KIMLIK = SK.URUN_KIMLIK AND GRN.FIS_TURU = 'Ürün Girişi' AND GRN.HESAP_DURUMU = 'Ürün Girişi'

GROUP BY SK.URUN_KIMLIK, SK.URUN_ACIKLAMA, SK.SATIS_FIYATI, SK.ALIS_FIYATI  

buda sql

Kod: Tümünü seç

USE 
GO
 
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[SATIS_DETAYI](
	[HAREKET_KIMLIK] [int] IDENTITY(1,1) NOT NULL,
	[MAGAZA] [varchar](500) NOT NULL,
	[EKLEYEN_PERSONEL] [varchar](500) NULL,
	[KATEGORI_KIMLIK] [varchar](500) NULL,
	[URUN_KIMLIK] [varchar](500) NULL,
	[URUN_MIKTARI] [float] NULL,
	[BIRIM_FIYATI] [float] NULL,
	[TARIH] [datetime] NULL,
	[FIS_TURU] [varchar](500) NULL,
	[HESAP_DURUMU] [varchar](500) NULL,
	[MASA_NO] [varchar](500) NULL,
 CONSTRAINT [PK_SATIS_DETAYI] PRIMARY KEY CLUSTERED 
(
	[HAREKET_KIMLIK] 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].[SATIS_DETAYI] ADD  CONSTRAINT [DF_SATIS_DETAYI_TARIH]  DEFAULT (getdate()) FOR [TARIH]
GO

ALTER TABLE [dbo].[SATIS_DETAYI] ADD  CONSTRAINT [DF_SATIS_DETAYI_FIS_TURU]  DEFAULT ('Satış Fişi') FOR [FIS_TURU]
GO

ALTER TABLE [dbo].[SATIS_DETAYI] ADD  CONSTRAINT [DF_SATIS_DETAYI_HESAP_DURUMU]  DEFAULT ('Açık Satış') FOR [HESAP_DURUMU]
GO


Resim
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: sql giriş çıkış sorgusu

Mesaj gönderen erdogan_ozkaya »

GÜNCEL KONU :(
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: sql giriş çıkış sorgusu

Mesaj gönderen aslangeri »

s.a.
Select sorgunuzu sum olmadan bi yapın. O
radan gelen kayıtları incelediğiniz zaman muhtemelen problemi göreceksiniz.
Ben o şekilde buluyorum.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ertank
Kıdemli Üye
Mesajlar: 1652
Kayıt: 12 Eyl 2015 12:45

Re: sql giriş çıkış sorgusu

Mesaj gönderen ertank »

Merhaba,

Daha basit şekilde çözmeye çalışabilir misin? Tek bir SQL yerine örneğin önce giriş kayıtlarını çek. Sonra çıkış kayıtlarını. Bir yerine iki defada bilgilere ulaş.

SQL bilgim çok iyi değil. Ben kendi adıma "where" kısmında eşitlik olarak bağlıyorum alanları. Acaba left outer join önce stok kartları ile giriş tablosunu birleştirip sonra da bu birleşmiş kayıtlar ile çıkış kayıtlarını eşleştirmeye çalışıyor ondan mı 2 yerine 4 kayıt geliyor?

Ayrıca, Eğer satır bazında alış-satır birim fiyatı değişirse senin SQL hatalı fiyat hesaplaması yapabilir mi? Dediğim gibi SQL bilgim o kadar da iyi değil.
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: sql giriş çıkış sorgusu

Mesaj gönderen erdogan_ozkaya »

Merhaba cevabınız için teşekkür ederim fakat çözemedim haala yardımcı olabilecek bir arkadaş yokmu acaba ?

teşekkürler.
Kullanıcı avatarı
bulutsuzluk_35
Üye
Mesajlar: 124
Kayıt: 06 Eki 2007 04:14
Konum: İzmir-Ankara-İstanbul-Antalya
İletişim:

Re: sql giriş çıkış sorgusu

Mesaj gönderen bulutsuzluk_35 »

mrb,
oncelikle bu sorunu bizim bulmamız çok zor zira konu senin datanla ilgili teknik bir konu değil.ama kısaca ilk gözüme çarpan olay şu satıs_detay tablonda ürün_kimlik 'ten daha önce
[MAGAZA] [varchar](500) NOT NULL,
[EKLEYEN_PERSONEL] [varchar](500) NULL,
[KATEGORI_KIMLIK] [varchar](500) NULL,
gibi alanların var ve sorgunda bunlara herhangi bir kısıtlama koymamışsın.öncelikle bu alanlara da bir kısıtlama koymalısın ayrıca group by alanların içinde açıklama alanının biraz saçma gibi geldi bana...

Kod: Tümünü seç

try
  try
    inc(Bilgi);
  except
    sabir;
  end;
finally
  inc(Mutluluk);
end;
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: sql giriş çıkış sorgusu

Mesaj gönderen erdogan_ozkaya »

hocam cevabın için teşekkürler ama haala çözemedim, tabiki kimse yardım etmek zorunda değil ama eleştiriden ziyade yardıma ihtiyacım var tablo hakkındaki fikrin için teşekkürler sen söyle ben düzelteyim hatamı ?

konu güncel teşekkürler
Kullanıcı avatarı
mustafasoy
Üye
Mesajlar: 154
Kayıt: 02 Ağu 2013 05:00
Konum: istanbul
İletişim:

Re: sql giriş çıkış sorgusu

Mesaj gönderen mustafasoy »

anladığım kadarıyla girişleri aynı kolonda tutuyorsunuz , bunun yerine giren ve cikan diye kolonlara ayırsanız
satış yapıldığında gireni 0 cikanı 1 yapsanız
alış yapıldığın gireni 1 cikanı 0 yapsanız
işiniz kolaylaşır gibi.
http://www.mustafasoy.com.tr
Nasıl ki Soru sorarak öğrendiyseniz , öğrendiklerinizi cevap vererek öğretiniz.
Cevapla