aşağıda doğru ve yanlış çalışan sql kodlarım var. Kodların açıklaması en sonra mevcut. Burda hata nerde olabilir.
bu kod 5 satır döndürüyor
Kod: Tümünü seç
qryRes.close;
qryRes.SQL.Clear;
qryRes.SQL.Add('SELECT FTD.FWTPFT AS FaturaTipi, FTD.FWNRFT AS FaturaNo,');
qryRes.SQL.Add('FTD.FWDTFT AS FaturaTarihi, FTD.FWCDCL AS FatMusteriNo,');
qryRes.SQL.Add('ANC.CDCLI AS MusteriNo, ANC.RASCL AS MusteriUnvani,');
qryRes.SQL.Add('FTD.FWMCLV AS StokGrKod, FTD.FWCDPD AS StokKodu,');
qryRes.SQL.Add('FTD.FWNRPA AS Ack1, FTD.FWNRBA AS Ack2, FTD.FWUMVN AS Birim,');
qryRes.SQL.Add('FTD.FWQTVN AS Miktar, FTD.FWPREZ AS BirimFiyat,');
qryRes.SQL.Add('FTD.FWIMRG AS Toplam, FTD.FWNRDC AS IrsaliyeNo,');
qryRes.SQL.Add('FTD.FWDTDC AS IrsaliyeTar, ART.ARMCLV AS StokGrKod,');
qryRes.SQL.Add('ART.ARCDPD AS StokKodu, ART.ARDSES AS StokAdi');
qryRes.SQL.Add('FROM ERDDAT.FTDET103 FTD,');
qryRes.SQL.Add('ERDDAT.ANCLIL02 ANC,');
qryRes.SQL.Add('ERDDAT.ARTIC00F ART');
qryRes.SQL.Add('WHERE FTD.FWCDCL=ANC.CDCLI');
qryRes.SQL.Add('AND FTD.FWMCLV=ART.ARMCLV');
qryRes.SQL.Add('AND FTD.FWCDPD=ART.ARCDPD');
qryRes.sql.Add('AND FTD.FWDTFT>='+QuotedStr(dtbas)+' and FTD.FWDTFT <='+QuotedStr(dtbit));
if cbbFatTipi.ItemIndex <> -1 then
begin
qryRes.sql.Add(' AND FTD.FWTPFT ='+QuotedStr(Copy(cbbFatTipi.Text,4,2)));
end;
if Length(edtMus.Text) >0 then
begin
qryRes.sql.Add(' AND FTD.FWCDCL ='+QuotedStr(edtMus.Text+' '));
end;
if cbbGrKod.ItemIndex <> -1 then
begin
qryRes.sql.Add(' AND FTD.FWMCLV='+ QuotedStr(Copy(cbbGrKod.Text,1,2)));
end;
qryRes.Open;
end;
Kod: Tümünü seç
qryRes.close;
qryRes.SQL.Clear;
qryRes.SQL.Add('SELECT FTD.FWTPFT AS FaturaTipi, FTD.FWNRFT AS FaturaNo,');
qryRes.SQL.Add('FTD.FWDTFT AS FaturaTarihi, FTD.FWCDCL AS FatMusteriNo,');
qryRes.SQL.Add('ANC.CDCLI AS MusteriNo, ANC.RASCL AS MusteriUnvani,');
qryRes.SQL.Add('FTD.FWMCLV AS StokGrKod, FTD.FWCDPD AS StokKodu,');
qryRes.SQL.Add('FTD.FWNRPA AS Ack1, FTD.FWNRBA AS Ack2, FTD.FWUMVN AS Birim,');
qryRes.SQL.Add('FTD.FWQTVN AS Miktar, FTD.FWPREZ AS BirimFiyat,');
qryRes.SQL.Add('FTD.FWIMRG AS Toplam, FTD.FWNRDC AS IrsaliyeNo,');
qryRes.SQL.Add('FTD.FWDTDC AS IrsaliyeTar, ART.ARMCLV AS StokGrKod,');
qryRes.SQL.Add('ART.ARCDPD AS StokKodu, ART.ARDSES AS StokAdi,');
qryRes.SQL.Add('CED.CENRDC AS IrsaliyeNo, CED.CEDTDC AS IrsaliyeTar,');
qryRes.SQL.Add('CED.CECDCL AS IrsaliyeMusNo, ANC.RASCL AS IrsaliyeMusUnv');
qryRes.SQL.Add('FROM ERDDAT.FTDET103 FTD,');
qryRes.SQL.Add('ERDDAT.ANCLIL02 ANC,');
qryRes.SQL.Add('ERDDAT.ARTIC00F ART,');
qryRes.SQL.Add('ERDDAT.CEDET00F CED');
qryRes.SQL.Add('WHERE FTD.FWCDCL=ANC.CDCLI');
qryRes.SQL.Add('AND FTD.FWMCLV=ART.ARMCLV');
qryRes.SQL.Add('AND FTD.FWCDPD=ART.ARCDPD');
qryRes.SQL.Add('AND FTD.FWNRDC=CED.CENRDC');
qryRes.SQL.Add('AND ANC.CDCLI=CED.CECDCL');
qryRes.sql.Add('AND FTD.FWDTFT>='+QuotedStr(dtbas)+' and FTD.FWDTFT <='+QuotedStr(dtbit));
if cbbFatTipi.ItemIndex <> -1 then
begin
qryRes.sql.Add(' AND FTD.FWTPFT ='+QuotedStr(Copy(cbbFatTipi.Text,4,2)));
end;
if Length(edtMus.Text) >0 then
begin
qryRes.sql.Add(' AND FTD.FWCDCL ='+QuotedStr(edtMus.Text+' '));
end;
if cbbGrKod.ItemIndex <> -1 then
begin
qryRes.sql.Add(' AND FTD.FWMCLV='+ QuotedStr(Copy(cbbGrKod.Text,1,2)));
end;
qryRes.Open;
istenen fatura tipi, musteri ve tarih ile stoktan filte koymak şartıyla;
Faturadetay dosyasından müşteri no alıp bununla müşteri nosunu müşteri dosyasından müşteri adını çekip join ediyorum. Yine aynı şekilde stok kodunu alıp stokmasterdan stok adını join ediyorum. ancak bazen irsaliye ile fatura farklı yere kesiliyor bizde. İşte bunun içinde irsaliye no ile İRSALİYE DOSYASINDAKİ MÜŞTERİ NODAN TEKRAR müşteri dosyasında irsaliyenin kesildiği adı çekmeye çalışıyorum(bkz. 2. kod bloğu) ama birden kayıt sayısı artıyor. anladığım kod kartezyen çarpım döndürüyor anlamadığım ise bunu nasıl gideririm.
saygılar