SQL Sorgulama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: SQL Sorgulama

Mesaj gönderen ozcank »

biraz daha uğraştım 1. iskonto düşülmüş toplamı yakaladım şöyle; :)
Brut Toplam = 500 tl
1.İskonto %10 = 50 tl
500 TL - 50 TL = 450 Kod buraya kadar tamam

Kod: Tümünü seç

Sum(CASE WHEN A.STHAR_SATISK2=STHAR_SATISK2 THEN (A.STHAR_BF * A.STHAR_GCMIK) ELSE 0 END) - SUM(CASE WHEN A.STHAR_SATISK=STHAR_SATISK THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK)/100*100000 ELSE 0 END) AS ISKONTO2
Şimdi 2.İskonto %15 450 tl den düşecem 450 tl * 15 / 100 = 67,5 tl yakalamam gerekiyor şu şekilde yapıyorum ;

Kod: Tümünü seç

Sum(CASE WHEN A.STHAR_SATISK2=STHAR_SATISK2 THEN (A.STHAR_BF * A.STHAR_GCMIK) ELSE 0 END) - SUM(CASE WHEN A.STHAR_SATISK=STHAR_SATISK THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK)/100*100000 ELSE 0 END) * A.STHAR_SATISK2/100 AS Iskonto2
Sonuç 67.5 olacağı yerde 492.5 TL oluyor bu şekilde yanlış mı yaptım ? neye göre hesaplıyor çıkartamadım :(
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: SQL Sorgulama

Mesaj gönderen m_ekici »

Kodu deneyemiyorum ama aşağıdaki kodu önce SQL de test et. sonra delphi ye aktar.

Kod: Tümünü seç

SELECT A.STOK_KODU
	,D.STOK_ADI
	,E.CARI_KOD
	,E.CARI_ISIM
	,B.FATIRS_NO
	,B.TARIH
	,B.BRUTTUTAR
	,B.SAT_ISKT
	,A.STHAR_SATISK
	,A.STHAR_SATISK2
	,A.STRA_SATISK3
	,A.STRA_SATISK4
	,A.STRA_SATISK5
	,A.STRA_SATISK6
	,B.GEN_ISK1O
	,B.GEN_ISK1T
	,B.GEN_ISK2O
	,B.GEN_ISK2T
	,B.GEN_ISK3O
	,B.GEN_ISK3T
	,B.KDV
	,B.GENELTOPLAM
	,sum(CASE 
			WHEN A.STHAR_SATISK = STHAR_SATISK
				THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
			ELSE 0
			END) AS Iskonto1
	,Sum(CASE 
			WHEN A.STHAR_SATISK2 = STHAR_SATISK2
				THEN (
						A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK2 - (
							CASE 
								WHEN A.STHAR_SATISK = STHAR_SATISK
									THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
								ELSE 0
								END
							)
						) / 100
			ELSE 0
			END) AS Iskonto2
	,Sum(CASE 
			WHEN A.STRA_SATISK3 = STRA_SATISK3
				THEN (
						A.STHAR_BF * A.STHAR_GCMIK * A.STRA_SATISK3 - (
							CASE 
								WHEN A.STHAR_SATISK = STHAR_SATISK
									THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
								ELSE 0
								END
							) + (
							CASE 
								WHEN A.STHAR_SATISK2 = STHAR_SATISK2
									THEN (
											A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK2 - (
												CASE 
													WHEN A.STHAR_SATISK = STHAR_SATISK
														THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
													ELSE 0
													END
												)
											) / 100
								ELSE 0
								END
							)
						) / 100
			ELSE 0
			END) AS Iskonto3
	,Sum(CASE 
			WHEN A.STRA_SATISK4 = STRA_SATISK4
				THEN (
						A.STHAR_BF * A.STHAR_GCMIK * A.STRA_SATISK4 - (
							CASE 
								WHEN A.STHAR_SATISK = STHAR_SATISK
									THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
								ELSE 0
								END
							) + (
							CASE 
								WHEN A.STHAR_SATISK2 = STHAR_SATISK2
									THEN (
											A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK2 - (
												CASE 
													WHEN A.STHAR_SATISK = STHAR_SATISK
														THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
													ELSE 0
													END
												)
											) / 100
								ELSE 0
								END
							) + (
							CASE 
								WHEN A.STRA_SATISK3 = STRA_SATISK3
									THEN (
											A.STHAR_BF * A.STHAR_GCMIK * A.STRA_SATISK3 - (
												CASE 
													WHEN A.STHAR_SATISK = STHAR_SATISK
														THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
													ELSE 0
													END
												) + (
												CASE 
													WHEN A.STHAR_SATISK2 = STHAR_SATISK2
														THEN (
																A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK2 - (
																	CASE 
																		WHEN A.STHAR_SATISK = STHAR_SATISK
																			THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
																		ELSE 0
																		END
																	)
																) / 100
													ELSE 0
													END
												)
											) / 100
								ELSE 0
								END
							)
						) / 100
			ELSE 0
			END) AS Iskonto4
	,Sum(CASE 
			WHEN A.STRA_SATISK5 = STRA_SATISK5
				THEN (
						A.STHAR_BF * A.STHAR_GCMIK * A.STRA_SATISK5 - (
							CASE 
								WHEN A.STHAR_SATISK = STHAR_SATISK
									THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
								ELSE 0
								END
							) + (
							CASE 
								WHEN A.STHAR_SATISK2 = STHAR_SATISK2
									THEN (
											A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK2 - (
												CASE 
													WHEN A.STHAR_SATISK = STHAR_SATISK
														THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
													ELSE 0
													END
												)
											) / 100
								ELSE 0
								END
							) + (
							CASE 
								WHEN A.STRA_SATISK3 = STRA_SATISK3
									THEN (
											A.STHAR_BF * A.STHAR_GCMIK * A.STRA_SATISK3 - (
												CASE 
													WHEN A.STHAR_SATISK = STHAR_SATISK
														THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
													ELSE 0
													END
												) + (
												CASE 
													WHEN A.STHAR_SATISK2 = STHAR_SATISK2
														THEN (
																A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK2 - (
																	CASE 
																		WHEN A.STHAR_SATISK = STHAR_SATISK
																			THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
																		ELSE 0
																		END
																	)
																) / 100
													ELSE 0
													END
												)
											) / 100
								ELSE 0
								END
							) + (
							CASE 
								WHEN A.STRA_SATISK4 = STRA_SATISK4
									THEN (
											A.STHAR_BF * A.STHAR_GCMIK * A.STRA_SATISK4 - (
												CASE 
													WHEN A.STHAR_SATISK = STHAR_SATISK
														THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
													ELSE 0
													END
												) + (
												CASE 
													WHEN A.STHAR_SATISK2 = STHAR_SATISK2
														THEN (
																A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK2 - (
																	CASE 
																		WHEN A.STHAR_SATISK = STHAR_SATISK
																			THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
																		ELSE 0
																		END
																	)
																) / 100
													ELSE 0
													END
												) + (
												CASE 
													WHEN A.STRA_SATISK3 = STRA_SATISK3
														THEN (
																A.STHAR_BF * A.STHAR_GCMIK * A.STRA_SATISK3 - (
																	CASE 
																		WHEN A.STHAR_SATISK = STHAR_SATISK
																			THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
																		ELSE 0
																		END
																	) + (
																	CASE 
																		WHEN A.STHAR_SATISK2 = STHAR_SATISK2
																			THEN (
																					A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK2 - (
																						CASE 
																							WHEN A.STHAR_SATISK = STHAR_SATISK
																								THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
																							ELSE 0
																							END
																						)
																					) / 100
																		ELSE 0
																		END
																	)
																) / 100
													ELSE 0
													END
												)
											) / 100
								ELSE 0
								END
							)
						) / 100
			ELSE 0
			END) AS Iskonto5
	,Sum(CASE 
			WHEN A.STRA_SATISK6 = STRA_SATISK6
				THEN (
						A.STHAR_BF * A.STHAR_GCMIK * A.STRA_SATISK6 - (
							CASE 
								WHEN A.STHAR_SATISK = STHAR_SATISK
									THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
								ELSE 0
								END
							) + (
							CASE 
								WHEN A.STHAR_SATISK2 = STHAR_SATISK2
									THEN (
											A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK2 - (
												CASE 
													WHEN A.STHAR_SATISK = STHAR_SATISK
														THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
													ELSE 0
													END
												)
											) / 100
								ELSE 0
								END
							) + (
							CASE 
								WHEN A.STRA_SATISK3 = STRA_SATISK3
									THEN (
											A.STHAR_BF * A.STHAR_GCMIK * A.STRA_SATISK3 - (
												CASE 
													WHEN A.STHAR_SATISK = STHAR_SATISK
														THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
													ELSE 0
													END
												) + (
												CASE 
													WHEN A.STHAR_SATISK2 = STHAR_SATISK2
														THEN (
																A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK2 - (
																	CASE 
																		WHEN A.STHAR_SATISK = STHAR_SATISK
																			THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
																		ELSE 0
																		END
																	)
																) / 100
													ELSE 0
													END
												)
											) / 100
								ELSE 0
								END
							) + (
							CASE 
								WHEN A.STRA_SATISK4 = STRA_SATISK4
									THEN (
											A.STHAR_BF * A.STHAR_GCMIK * A.STRA_SATISK4 - (
												CASE 
													WHEN A.STHAR_SATISK = STHAR_SATISK
														THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
													ELSE 0
													END
												) + (
												CASE 
													WHEN A.STHAR_SATISK2 = STHAR_SATISK2
														THEN (
																A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK2 - (
																	CASE 
																		WHEN A.STHAR_SATISK = STHAR_SATISK
																			THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
																		ELSE 0
																		END
																	)
																) / 100
													ELSE 0
													END
												) + (
												CASE 
													WHEN A.STRA_SATISK3 = STRA_SATISK3
														THEN (
																A.STHAR_BF * A.STHAR_GCMIK * A.STRA_SATISK3 - (
																	CASE 
																		WHEN A.STHAR_SATISK = STHAR_SATISK
																			THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
																		ELSE 0
																		END
																	) + (
																	CASE 
																		WHEN A.STHAR_SATISK2 = STHAR_SATISK2
																			THEN (
																					A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK2 - (
																						CASE 
																							WHEN A.STHAR_SATISK = STHAR_SATISK
																								THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
																							ELSE 0
																							END
																						)
																					) / 100
																		ELSE 0
																		END
																	)
																) / 100
													ELSE 0
													END
												)
											) / 100
								ELSE 0
								END
							) + (
							CASE 
								WHEN A.STRA_SATISK5 = STRA_SATISK5
									THEN (
											A.STHAR_BF * A.STHAR_GCMIK * A.STRA_SATISK5 - (
												CASE 
													WHEN A.STHAR_SATISK = STHAR_SATISK
														THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
													ELSE 0
													END
												) + (
												CASE 
													WHEN A.STHAR_SATISK2 = STHAR_SATISK2
														THEN (
																A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK2 - (
																	CASE 
																		WHEN A.STHAR_SATISK = STHAR_SATISK
																			THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
																		ELSE 0
																		END
																	)
																) / 100
													ELSE 0
													END
												) + (
												CASE 
													WHEN A.STRA_SATISK3 = STRA_SATISK3
														THEN (
																A.STHAR_BF * A.STHAR_GCMIK * A.STRA_SATISK3 - (
																	CASE 
																		WHEN A.STHAR_SATISK = STHAR_SATISK
																			THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
																		ELSE 0
																		END
																	) + (
																	CASE 
																		WHEN A.STHAR_SATISK2 = STHAR_SATISK2
																			THEN (
																					A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK2 - (
																						CASE 
																							WHEN A.STHAR_SATISK = STHAR_SATISK
																								THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
																							ELSE 0
																							END
																						)
																					) / 100
																		ELSE 0
																		END
																	)
																) / 100
													ELSE 0
													END
												) + (
												CASE 
													WHEN A.STRA_SATISK4 = STRA_SATISK4
														THEN (
																A.STHAR_BF * A.STHAR_GCMIK * A.STRA_SATISK4 - (
																	CASE 
																		WHEN A.STHAR_SATISK = STHAR_SATISK
																			THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
																		ELSE 0
																		END
																	) + (
																	CASE 
																		WHEN A.STHAR_SATISK2 = STHAR_SATISK2
																			THEN (
																					A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK2 - (
																						CASE 
																							WHEN A.STHAR_SATISK = STHAR_SATISK
																								THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
																							ELSE 0
																							END
																						)
																					) / 100
																		ELSE 0
																		END
																	) + (
																	CASE 
																		WHEN A.STRA_SATISK3 = STRA_SATISK3
																			THEN (
																					A.STHAR_BF * A.STHAR_GCMIK * A.STRA_SATISK3 - (
																						CASE 
																							WHEN A.STHAR_SATISK = STHAR_SATISK
																								THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
																							ELSE 0
																							END
																						) + (
																						CASE 
																							WHEN A.STHAR_SATISK2 = STHAR_SATISK2
																								THEN (
																										A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK2 - (
																											CASE 
																												WHEN A.STHAR_SATISK = STHAR_SATISK
																													THEN (A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100
																												ELSE 0
																												END
																											)
																										) / 100
																							ELSE 0
																							END
																						)
																					) / 100
																		ELSE 0
																		END
																	)
																) / 100
													ELSE 0
													END
												)
											) / 100
								ELSE 0
								END
							)
						) / 100
			ELSE 0
			END) AS Iskonto6
FROM TBLSTHAR AS A
INNER JOIN TBLFATUIRS AS B ON B.FATIRS_NO = A.FISNO
INNER JOIN TBLSTSABIT AS D ON A.STOK_KODU = D.STOK_KODU
INNER JOIN TBLCASABIT AS E ON B.CARI_KODU = E.CARI_KOD
WHERE B.CARI_KODU = '000165'
	AND B.FTIRSIP = '1'
GROUP BY A.STOK_KODU
	,D.STOK_ADI
	,E.CARI_KOD
	,E.CARI_ISIM
	,B.FATIRS_NO
	,B.TARIH
	,B.BRUTTUTAR
	,B.SAT_ISKT
	,A.STHAR_SATISK
	,A.STHAR_SATISK2
	,A.STRA_SATISK3
	,A.STRA_SATISK4
	,A.STRA_SATISK5
	,A.STRA_SATISK6
	,B.GEN_ISK1O
	,B.GEN_ISK1T
	,B.GEN_ISK2O
	,B.GEN_ISK2T
	,B.GEN_ISK3O
	,B.GEN_ISK3T
	,B.KDV
	,B.GENELTOPLAM
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: SQL Sorgulama

Mesaj gönderen ozcank »

m_ekici kardeşim Allah Razı olsun bu saatte bana bunları yazdın ya

kodu sql de denedim şöyle yapıyor;

iskontoları brüt tutar dan hesaplıyor

500tl 1.iskonto %10 =50
500tl 2.iskonto %15=75
500tl 3.iskonto %20=100
gidiyor şöyle olması gerekiyor ;
500tl 1.iskonto %10 =50
450tl 2.iskonto %15=67,5
382,5tl 3.iskonto %20=76,5
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: SQL Sorgulama

Mesaj gönderen m_ekici »

Kod: Tümünü seç

SELECT A.STOK_KODU
	,D.STOK_ADI
	,E.CARI_KOD
	,E.CARI_ISIM
	,B.FATIRS_NO
	,B.TARIH
	,B.BRUTTUTAR
	,B.SAT_ISKT
	,A.STHAR_SATISK
	,A.STHAR_SATISK2
	,A.STRA_SATISK3
	,A.STRA_SATISK4
	,A.STRA_SATISK5
	,A.STRA_SATISK6
	,B.GEN_ISK1O
	,B.GEN_ISK1T
	,B.GEN_ISK2O
	,B.GEN_ISK2T
	,B.GEN_ISK3O
	,B.GEN_ISK3T
	,B.KDV
	,B.GENELTOPLAM
	,sum((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100) AS Iskonto1
	,sum((((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100))) * A.STHAR_SATISK2) / 100) AS Iskonto 2
	,sum(((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100) + ((((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100))) * A.STHAR_SATISK2) / 100)) * A.STRA_SATISK3) / 100) AS Iskonto3
	,sum((
			(A.STHAR_BF * A.STHAR_GCMIK) - (
				((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100) + ((((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100))) * A.STHAR_SATISK2) / 100) + (((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100) + ((((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100))) * A.STHAR_SATISK2) / 100)) * A.STRA_SATISK3) / 100
					)
				) * A.STRA_SATISK4
			) / 100) AS Iskonto 4
	,sum((
			(A.STHAR_BF * A.STHAR_GCMIK) - (
				((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100) + ((((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100))) * A.STHAR_SATISK2) / 100) + (((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100) + ((((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100))) * A.STHAR_SATISK2) / 100)) * A.STRA_SATISK3) / 100
					) + (
					(
						(A.STHAR_BF * A.STHAR_GCMIK) - (
							((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100) + ((((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100))) * A.STHAR_SATISK2) / 100) + (((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100) + ((((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100))) * A.STHAR_SATISK2) / 100)) * A.STRA_SATISK3) / 100
								)
							) * A.STRA_SATISK4
						) / 100
					)
				) * A.STRA_SATISK5
			) / 100) AS Iskonto5
	,sum((
			(A.STHAR_BF * A.STHAR_GCMIK) - (
				((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100) + ((((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100))) * A.STHAR_SATISK2) / 100) + (((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100) + ((((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100))) * A.STHAR_SATISK2) / 100)) * A.STRA_SATISK3) / 100
					) + (
					(
						(A.STHAR_BF * A.STHAR_GCMIK) - (
							((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100) + ((((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100))) * A.STHAR_SATISK2) / 100) + (((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100) + ((((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100))) * A.STHAR_SATISK2) / 100)) * A.STRA_SATISK3) / 100
								) + (
								(
									(A.STHAR_BF * A.STHAR_GCMIK) - (
										((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100) + ((((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100))) * A.STHAR_SATISK2) / 100) + (((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100) + ((((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100))) * A.STHAR_SATISK2) / 100)) * A.STRA_SATISK3) / 100
											)
										) * A.STRA_SATISK4
									) / 100
								)
							) * A.STRA_SATISK5
						) / 100
					)
				) * A.STRA_SATISK6
			) / 100) AS Iskonto6
FROM TBLSTHAR AS A
INNER JOIN TBLFATUIRS AS B ON B.FATIRS_NO = A.FISNO
INNER JOIN TBLSTSABIT AS D ON A.STOK_KODU = D.STOK_KODU
INNER JOIN TBLCASABIT AS E ON B.CARI_KODU = E.CARI_KOD
WHERE B.CARI_KODU = '' 000165 ''
	AND B.FTIRSIP = '' 1 ''
GROUP BY A.STOK_KODU
	,D.STOK_ADI
	,E.CARI_KOD
	,E.CARI_ISIM
	,B.FATIRS_NO
	,B.TARIH
	,B.BRUTTUTAR
	,B.SAT_ISKT
	,A.STHAR_SATISK
	,A.STHAR_SATISK2
	,A.STRA_SATISK3
	,A.STRA_SATISK4
	,A.STRA_SATISK5
	,A.STRA_SATISK6
	,B.GEN_ISK1O
	,B.GEN_ISK1T
	,B.GEN_ISK2O
	,B.GEN_ISK2T
	,B.GEN_ISK3O
	,B.GEN_ISK3T
	,B.KDV
	,B.GENELTOPLAM
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: SQL Sorgulama

Mesaj gönderen ozcank »

m.ekici kardeşim İskonto toplamları yine yanlış veriyor ;

1300204 1018-T TÝLLO HUNÝ 000165 ADEM KAHVECI 000000000095896 2014-07-10
0.000500 İskonto 1 Tutarı
74.999925 İskonto 2 Tutarı
-10.000085 İskonto 3 Tutarı
-11.250085 İskonto 4 Tutarı
-11.125076 İskonto 5 Tutarı
-13.856342 İskonto 6 Tutarı

Olması gereken ;

1300204 1018-T TÝLLO HUNÝ 000165 ADEM KAHVECI 000000000095896 2014-07-10
50 İskonto 1 Tutarı
67,5 İskonto 2 Tutarı
76,5 İskonto 3 Tutarı
76,5 İskonto 4 Tutarı
68,85 İskonto 5 Tutarı
56,23 İskonto 6 Tutarı

Abi uzak bağlantı verebilirim sonuçları görmen için .
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: SQL Sorgulama

Mesaj gönderen ozcank »

şunu denedim şöyle bir sonuç var bende anlayamadım ;

burdaki kod 450 tl yi yani iskonto 1 düşülmüş halini buluyor

Kod: Tümünü seç

,sum((((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100))) AS Iskonto2
ama 2 iskonto oranı çarptırdığımızda sonuç doğru çıkmıyor

Kod: Tümünü seç

,sum((((A.STHAR_BF * A.STHAR_GCMIK) - (((A.STHAR_BF * A.STHAR_GCMIK * A.STHAR_SATISK) / 100))) * A.STHAR_SATISK2) / 100) AS Iskonto2
böyle bir sonuç 74.999925
normalde 67,5 olması gerekiyor.
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: SQL Sorgulama

Mesaj gönderen m_ekici »

s.a.
Son gönderdiğim SQL'in doğru sonuç vermesi lazım. Excel de testini yaptığımda (1, 2, 3. iskontoları denedim) doğru sonuç dönüyor. 1 den fazla sonucu topluyor ise sonuç hatalı dönebilir. DB de tek kayıt bırakarak denermisin. (500 TL lik örnek)

kolay gelsin
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: SQL Sorgulama

Mesaj gönderen ozcank »

Arkadaşlar sorunumu şu şekilde çözdüm. Yardımcı olan fikrini söyleyenlerden Allah Razı olsun.

Kod: Tümünü seç

  SQL.Text :='SELECT A.STOK_KODU,A.STHAR_GCMIK,A.STHAR_BF,D.STOK_ADI,D.GRUP_KODU,E.CARI_KOD, E.CARI_ISIM, B.FATIRS_NO, A.STHAR_TARIH, B.BRUTTUTAR, B.SAT_ISKT,A.STHAR_SATISK,A.STHAR_SATISK2, '+
             'A.STRA_SATISK3, A.STRA_SATISK4, A.STRA_SATISK5, A.STRA_SATISK6, B.GEN_ISK1O, B.GEN_ISK1T, B.GEN_ISK2O, B.GEN_ISK2T, B.GEN_ISK3O, B.GEN_ISK3T, B.KDV, B.GENELTOPLAM, ' +
             'A.STHAR_SATISK * 100000 AS IskontoO1, '+
             '(A.STHAR_GCMIK * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100) AS Iskonto1,'+
             '(A.STHAR_GCMIK * A.STHAR_BF - (A.STHAR_GCMIK * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100)) * A.STHAR_SATISK2/100 AS Iskonto2,'+
             '(A.STHAR_GCMIK * A.STHAR_BF - ((A.STHAR_GCMIK * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100) + ((A.STHAR_GCMIK * A.STHAR_BF - (A.STHAR_GCMIK * A.STHAR_BF) * '+
             '(((A.STHAR_SATISK * 100000))/100)) *  A.STHAR_SATISK2/100) )) *  A.STRA_SATISK3/100  AS Iskonto3, '+
             '(A.STHAR_GCMIK * A.STHAR_BF - ((A.STHAR_GCMIK * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100)+ ((A.STHAR_GCMIK * A.STHAR_BF - (A.STHAR_GCMIK * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100)) * '+
             'A.STHAR_SATISK2/100) +((A.STHAR_GCMIK * A.STHAR_BF - ((A.STHAR_GCMIK * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100) + ((A.STHAR_GCMIK * A.STHAR_BF - (A.STHAR_GCMIK * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100)) * '+
             'A.STHAR_SATISK2/100))) * A.STRA_SATISK3/100 ))) * A.STRA_SATISK4/100 AS  Iskonto4 ,'+
             '(A.STHAR_GCMIK * A.STHAR_BF - (((A.STHAR_GCMIK * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100))+((A.STHAR_GCMIK * A.STHAR_BF - (A.STHAR_GCMIK * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100)) * A.STHAR_SATISK2/100 )+((A.STHAR_GCMIK * A.STHAR_BF- '+
             '((A.STHAR_GCMIK * A.STHAR_BF) *  (((A.STHAR_SATISK * 100000))/100) + ((A.STHAR_GCMIK * A.STHAR_BF - (A.STHAR_GCMIK * A.STHAR_BF) *  (((A.STHAR_SATISK * 100000))/100)) * A.STHAR_SATISK2/100) )) *  A.STRA_SATISK3/100 )+((A.STHAR_GCMIK * A.STHAR_BF - '+
             '((A.STHAR_GCMIK * A.STHAR_BF) *  (((A.STHAR_SATISK * 100000))/100)+ ((A.STHAR_GCMIK * A.STHAR_BF - (A.STHAR_GCMIK * A.STHAR_BF) *  (((A.STHAR_SATISK * 100000))/100)) * A.STHAR_SATISK2/100) +((A.STHAR_GCMIK * A.STHAR_BF- ((A.STHAR_GCMIK * A.STHAR_BF) * '+
             '(((A.STHAR_SATISK * 100000))/100) + ((A.STHAR_GCMIK * A.STHAR_BF - (A.STHAR_GCMIK * A.STHAR_BF) *  (((A.STHAR_SATISK * 100000))/100)) * A.STHAR_SATISK2/100) )) * A.STRA_SATISK3/100 ))) * A.STRA_SATISK4/100))) *  A.STRA_SATISK5/100  AS  Iskonto5, '+
             '(A.STHAR_GCMIK * A.STHAR_BF - (((A.STHAR_GCMIK * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100))+ ((A.STHAR_GCMIK * A.STHAR_BF - '+
             '(A.STHAR_GCMIK * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100)) * A.STHAR_SATISK2/100) + ((A.STHAR_GCMIK * A.STHAR_BF- '+
             '((A.STHAR_GCMIK  * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100) + ((A.STHAR_GCMIK * A.STHAR_BF - '+
             '(A.STHAR_GCMIK * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100))   *  A.STHAR_SATISK2/100) )) *  A.STRA_SATISK3/100)+((A.STHAR_GCMIK * A.STHAR_BF - '+
             '((A.STHAR_GCMIK  * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100)+ ((A.STHAR_GCMIK * A.STHAR_BF - (A.STHAR_GCMIK * A.STHAR_BF) * '+
             '(((A.STHAR_SATISK * 100000))/100)) *  A.STHAR_SATISK2/100) +((A.STHAR_GCMIK * A.STHAR_BF- '+
             '((A.STHAR_GCMIK  * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100) + ((A.STHAR_GCMIK * A.STHAR_BF - (A.STHAR_GCMIK * A.STHAR_BF) * '+
             '(((A.STHAR_SATISK * 100000))/100)) * A.STHAR_SATISK2/100) )) * A.STRA_SATISK3/100 ))) * A.STRA_SATISK4/100) + ((A.STHAR_GCMIK * A.STHAR_BF- '+
             '(((A.STHAR_GCMIK * A.STHAR_BF) *  (((A.STHAR_SATISK * 100000))/100))+((A.STHAR_GCMIK * A.STHAR_BF - (A.STHAR_GCMIK * A.STHAR_BF) * '+
             '(((A.STHAR_SATISK * 100000))/100)) * A.STHAR_SATISK2/100 )+((A.STHAR_GCMIK * A.STHAR_BF- '+
             '((A.STHAR_GCMIK * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100) + ((A.STHAR_GCMIK * A.STHAR_BF - (A.STHAR_GCMIK * A.STHAR_BF) * '+
             '(((A.STHAR_SATISK * 100000))/100)) * A.STHAR_SATISK2/100) )) * A.STRA_SATISK3/100 )+((A.STHAR_GCMIK * A.STHAR_BF - '+
             '((A.STHAR_GCMIK * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100)+ ((A.STHAR_GCMIK * A.STHAR_BF - (A.STHAR_GCMIK * A.STHAR_BF) * '+
             '(((A.STHAR_SATISK * 100000))/100)) * A.STHAR_SATISK2/100) +((A.STHAR_GCMIK * A.STHAR_BF- '+
             '((A.STHAR_GCMIK * A.STHAR_BF) * (((A.STHAR_SATISK * 100000))/100) + ((A.STHAR_GCMIK * A.STHAR_BF - (A.STHAR_GCMIK * A.STHAR_BF) * '+
             '(((A.STHAR_SATISK * 100000))/100)) * A.STHAR_SATISK2/100) )) * A.STRA_SATISK3/100 ))) * A.STRA_SATISK4/100))) * A.STRA_SATISK5/100))) * A.STRA_SATISK6/100 AS Iskonto6, '+
             'A.STHAR_BF * A.STHAR_GCMIK AS BRUT_TOPLAM FROM TBLSTHAR AS A INNER JOIN TBLFATUIRS AS B ON B.FATIRS_NO=A.FISNO INNER JOIN TBLSTSABIT AS D ON A.STOK_KODU=D.STOK_KODU '+
             'INNER JOIN TBLCASABIT AS E ON B.CARI_KODU=E.CARI_KOD WHERE A.STHAR_TARIH between :IsTarih1 AND :IsTarih2 AND A.STHAR_FTIRSIP=''1'' OR B.CARI_KODU='+#39+''+Edit1.Text+''+#39+' '+
             'OR D.GRUP_KODU='+#39+''+Edit9.Text+''+#39+' GROUP BY A.STOK_KODU,A.STHAR_GCMIK, A.STHAR_BF, '+
             'D.STOK_ADI,D.GRUP_KODU,E.CARI_KOD, E.CARI_ISIM, B.FATIRS_NO, A.STHAR_TARIH, B.BRUTTUTAR, B.SAT_ISKT,A.STHAR_SATISK, A.STHAR_SATISK2, A.STRA_SATISK3, A.STRA_SATISK4, A.STRA_SATISK5, '+
             'A.STRA_SATISK6, B.GEN_ISK1O, B.GEN_ISK1T, B.GEN_ISK2O, B.GEN_ISK2T, B.GEN_ISK3O, B.GEN_ISK3T, B.KDV, B.GENELTOPLAM';
birde where deki şartı bir türlü tutturamadım iki tarih arası rapor almak , iki tarih arası cari koda göre ve iki tarih arası grup koda göre şu şekilde yaptım ama rapor istediğim gibi olmadı ne şekilde düzeltebilirim yada yanlış mı yapıyorum bakarsanız sevinirim.
bu kod iki tarih arası alıyor ama iki tarih arası cari kod veya grup kodda almıyor .

Kod: Tümünü seç

WHERE A.STHAR_TARIH between :IsTarih1 AND :IsTarih2 AND A.STHAR_FTIRSIP=''1''  // İki tarih arası 
OR B.CARI_KODU='+#39+''+Edit1.Text+''+#39+' '+ // cari koda göre
'OR D.GRUP_KODU='+#39+''+Edit9.Text+''+#39+'  // grub a göre
OR A.STHAR_TARIH between :IsTarih1 AND :IsTarih2 AND B.CARI_KODU='+#39+''+Edit1.Text+''+#39+' '+ AND A.STHAR_FTIRSIP=''1''  // iki tarih arası ve cari koda göre
OR A.STHAR_TARIH between :IsTarih1 AND :IsTarih2 AND B.CARI_KODU='+#39+''+Edit9.Text+''+#39+' '+ // iki tarih arası ve grup koda göre
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: SQL Sorgulama

Mesaj gönderen ozcank »

İki tarih verdiğimde sadece tarihleri rapor edecek veya iki tarih ve cari kod rapor edecek veya iki tarih grup kodu rapor edecek böyle bir kodum var ama bağımsız çalışıyor
İki tarihi rapor da sorun yok ama cai kod veya grup kodu dahil ettiğim de alakasız sonuç veriyor.

Kod: Tümünü seç

WHERE   (A.STHAR_TARIH between :IsTarih1 AND :IsTarih2 AND A.STHAR_FTIRSIP=''1'') '+
             'OR (A.STHAR_TARIH between :IsTarih1 AND :IsTarih2  AND A.STHAR_ACIKLAMA='+#39+''+Edit1.Text+''+#39+' AND A.STHAR_FTIRSIP=''1'') OR '+
             '(A.STHAR_TARIH between :IsTarih1 AND :IsTarih2 AND D.GRUP_KODU='+#39+''+Edit9.Text+''+#39+' AND A.STHAR_FTIRSIP=''1'')
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: SQL Sorgulama

Mesaj gönderen ozcank »

Kadir geceniz Mübarek olsun.
Arkadaşlar raporlama yaptırdığım sorguda Türkçe karakter sorunum var yardım eder misiniz ?
filitre yaptırdığım yer ve Edit9.Text e 'TİBET' veya 'TUKAŞ' yazdığımda hiç bir şey gelmiyor ama 'ABC' 'NUDO' yazdığımda geliyor ADOQuery n bağlantısında
Auto Translate=False
birde function araştırdım buldum onu ekledim

onu da şöyle kullandım

Kod: Tümünü seç

WinToSQL(Edit9.Text);

Kod: Tümünü seç

function WinToSQL(s: String): String;
const
  win: string = 'ŞşİıĞğ';
  SQL: string = '??Yy??';
var
  j: byte;
begin
  for j := 1 to length(win) do
    while Pos(win[j], s) > 0 do
      s[Pos(win[j], s)] := SQL[j];
  result := s;
end;
GRUP_KODU
Edit9.Text

Kod: Tümünü seç

'A.STHAR_BF * A.STHAR_GCMIK AS BRUT_TOPLAM FROM TBLSTHAR AS A INNER JOIN TBLFATUIRS AS B ON B.FATIRS_NO=A.FISNO INNER JOIN TBLSTSABIT AS D ON A.STOK_KODU=D.STOK_KODU '+
'INNER JOIN TBLCASABIT AS E ON B.CARI_KODU=E.CARI_KOD WHERE A.STHAR_TARIH between :IsTarih1 AND :IsTarih2 AND D.GRUP_KODU='+#39+''+Edit9.Text+''+#39+' AND A.STHAR_FTIRSIP=''1'' '+
'GROUP BY A.STOK_KODU,A.STHAR_GCMIK, A.STHAR_BF, D.STOK_ADI,D.GRUP_KODU,E.CARI_KOD, E.CARI_ISIM, B.FATIRS_NO, A.STHAR_TARIH, B.BRUTTUTAR, B.SAT_ISKT,A.STHAR_SATISK, A.STHAR_SATISK2, '+
'A.STRA_SATISK3, A.STRA_SATISK4, A.STRA_SATISK5, A.STRA_SATISK6, B.GEN_ISK1O, B.GEN_ISK1T, B.GEN_ISK2O, B.GEN_ISK2T, B.GEN_ISK3O, B.GEN_ISK3T, B.KDV, B.GENELTOPLAM';
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: SQL Sorgulama

Mesaj gönderen mrmarman »

Bu başlıkta [b]@mrmarman[/b] yazdı:Netsis SQLServer kullanmıyor mu ? Unicode desteğini devreye sokmak için şunu dener misiniz ?

Tırnak işaretinin önüne bir tan büyük harf (N) koyun. Ben SQLServer sorgularımda bunu eksik etmem. :idea:

Kod: Tümünü seç

select .... where Grup_Kodu = N'TİBET' 

Kod: Tümünü seç

select .... where Grup_Kodu like N'%TİBET%'
Resim
Resim ....Resim
İHSAN
Üye
Mesajlar: 2
Kayıt: 25 Mar 2014 12:09

Re: SQL Sorgulama

Mesaj gönderen İHSAN »

Yaptığım bir programda tarih sorgu alanında ParamByname undeclared identifier hatası veriyor ne yapmalıyım
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: SQL Sorgulama

Mesaj gönderen ozcank »

İHSAN Kardeşim nasıl bir sorgu yapıyorsun kodu gönderebilirsen yardımcı olmaya çalışırız.
İHSAN
Üye
Mesajlar: 2
Kayıt: 25 Mar 2014 12:09

Re: SQL Sorgulama

Mesaj gönderen İHSAN »

VAR
tar1,tar:Tdate;
begin
if(Dedit1.text<>'')and(Dedit2.text<>'')then
begin
Adotable1.close;
Adotable1.SQL.CLEAR;
Adotable1.SQL.add('sELECT* from Ceza Tutanağı where tarih>=:tar1 and tarih<=:tar2');
Adotable1.paramByname('tar1').Asdate:=Strtodate(Dedit.text);
Adotable.paramByname('tar2').asdate:=As date:=StrtoDate(Dedit2.text);
Adotable1.open;
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: SQL Sorgulama

Mesaj gönderen mrmarman »

İHSAN yazdı:VAR
tar1,tar:Tdate;
begin
if(Dedit1.text<>'')and(Dedit2.text<>'')then
begin
Adotable1.close;
Adotable1.SQL.CLEAR;
Adotable1.SQL.add('sELECT* from Ceza Tutanağı where tarih>=:tar1 and tarih<=:tar2');
Adotable1.paramByname('tar1').Asdate:=Strtodate(Dedit.text);
Adotable.paramByname('tar2').asdate:=As date:=StrtoDate(Dedit2.text);
Adotable1.open;
AdoTable1.Parameters.ParamByName şeklinde denemelisiniz.
Resim
Resim ....Resim
Cevapla