2 TANE AYNI ÇEK

Gönderen Konu: 2 TANE AYNI ÇEK  (Okunma sayısı 1041 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı enginhazar

  • Yeni Kullanıcı
  • *
  • Karma: -1
2 TANE AYNI ÇEK
« : 13.09.2008, 18:33 »
HERKESE MERHABA :  (ÇEK GİRİŞ BORDROSUNA YANLIŞLIKLA BAŞKA BİR
MÜŞTERİNİN ÇEKİNİ İLAVE ETMİŞİZ  YANLIŞ ÇEKİ BORDRODAN ÇİKARİP
YENİ BİR BORDROLA DOĞRU MÜŞTERİNİN HESABINA GİRDİK
HESAPLARDA HERHANGİ BİR SORUN YOK )

FAKAT ÇEK SENETLERİ AÇTIĞIMIZDA ÇIKARDIĞIMIZ ÇEK ORDA
DURUYOR  YENİ BORDRODA GİRDİĞMİZ AYNI ÇEK İDE GÖSTERİYOR
TEK ÇEK VAR 2 TANE AYRI AYRI PÖRTFÖY NUMARALI ÇEK GÖRÜNÜYOR

SORU HANGİ SQL KOMUTU İLE FAZLA OLAN ÇEKİ SİLEBİLİRİM 
CEVAPLAR İÇİN TEŞEKÜRLER

Çevrimdışı mehmeterciyes

  • Logo Kullanıcısı Pro
  • ***
  • Karma: -1
Ynt: 2 TANE AYNI ÇEK
« Yanıtla #1 : 15.09.2008, 09:16 »
merhaba aşağıdaki querryi dene ama bence gir clf line dan elle kendin sil
----------------------------------------------------------------------------------------------------------------
------------------ ÇEKSENET NUMARALARI HATALI OLAN KAYITLAR ----------------------------------------------------
----------------------------------------------------------------------------------------------------------------
------- Firma No : _010_02
----------------------------------------------------------------------------------------------------------------
DECLARE @DOC SMALLINT
DECLARE @PORTFOYNO VARCHAR(9)
DECLARE @LOGICALREF INT
DECLARE @SAYI INT
DECLARE CEKSEN_PORTFOYNO_yasak CURSOR FOR         
-------------------------------------------------------------------
SELECT
   DOC, PORTFOYNO, COUNT(*) "SAYI"
FROM
   LG_010_02_CSCARD
GROUP BY
   DOC, PORTFOYNO
HAVING
   COUNT(*)>1
-------------------------------------------------------------------
OPEN CEKSEN_PORTFOYNO_yasak FETCH NEXT FROM CEKSEN_PORTFOYNO_yasak
INTO @DOC, @PORTFOYNO, @SAYI
WHILE @@FETCH_STATUS = 0
-------------------------------------------------------------------
BEGIN

SELECT @LOGICALREF=MIN(LOGICALREF) FROM LG_010_02_CSCARD WHERE DOC=1 AND PORTFOYNO=@PORTFOYNO

yasak LG_010_02_CSCARD SET PORTFOYNO='H'+SUBSTRING(PORTFOYNO,2,LEN(PORTFOYNO)) WHERE DOC=@DOC AND PORTFOYNO=@PORTFOYNO AND LOGICALREF=@LOGICALREF
-------------------------------------------------------------------      
FETCH NEXT FROM CEKSEN_PORTFOYNO_yasak
INTO @DOC, @PORTFOYNO, @SAYI
END
CLOSE CEKSEN_PORTFOYNO_yasak
DEALLOCATE CEKSEN_PORTFOYNO_yasak
----------------------------------------------------------------------------------------------------------------

Merhaba,
 
Yedek alıp aşağıdaki sorguyu çalıştırır mısınız? Firma ve dönem numaralarını değiştirmeyi unutmayınız
 
CREATE  UNIQUE  INDEX [IFFF_DD_CSCARD_I2] ON [dbo].[LG_FFF_DD_CSCARD]([DOC], [PORTFOYNO]) ON [PRIMARY]

 
----------
Merhaba,
 
Yedek aldıktan sonra bu işlemleri yapın.
 
Çek kartları penceresinde aynı portföy numaralı kayıtlar olabilir. Kontrol ve düzeltme için aşağıdaki sorguları kullanın.
 
----------CEKSENET PORTFOY NUMARALARI TEK OLMAYANLARIN LİSTELENMESİ --------------
SELECT
            DOC, PORTFOYNO, COUNT(*) "SAYI"
FROM
            LG_010_01_CSCARD (NOLOCK)
GROUP BY
            DOC, PORTFOYNO
HAVING
            COUNT(*)>1
 
ÇEKSENET NUMARALARI HATALI OLAN KAYITLAR ----------------------------------------------------
----------------------------------------------------------------------------------------------------------------
------- Firma No : _010_02
----------------------------------------------------------------------------------------------------------------
DECLARE @DOC SMALLINT
DECLARE @PORTFOYNO VARCHAR(9)
DECLARE @LOGICALREF INT
DECLARE @SAYI INT
DECLARE CEKSEN_PORTFOYNO_yasak CURSOR FOR                             
-------------------------------------------------------------------
SELECT
            DOC, PORTFOYNO, COUNT(*) "SAYI"
FROM
            LG_010_02_CSCARD
GROUP BY
            DOC, PORTFOYNO
HAVING
            COUNT(*)>1
-------------------------------------------------------------------
OPEN CEKSEN_PORTFOYNO_yasak FETCH NEXT FROM CEKSEN_PORTFOYNO_yasak
INTO @DOC, @PORTFOYNO, @SAYI
WHILE @@FETCH_STATUS = 0
-------------------------------------------------------------------
BEGIN
 
SELECT @LOGICALREF=MIN(LOGICALREF) FROM LG_010_02_CSCARD WHERE DOC=1 AND PORTFOYNO=@PORTFOYNO
 
yasak LG_010_02_CSCARD SET PORTFOYNO='H'+SUBSTRING(PORTFOYNO,2,LEN(PORTFOYNO)) WHERE DOC=@DOC AND PORTFOYNO=@PORTFOYNO AND LOGICALREF=@LOGICALREF
-------------------------------------------------------------------               
FETCH NEXT FROM CEKSEN_PORTFOYNO_yasak
INTO @DOC, @PORTFOYNO, @SAYI
END
CLOSE CEKSEN_PORTFOYNO_yasak
DEALLOCATE CEKSEN_PORTFOYNO_yasak
 
 




Çevrimdışı enginhazar

  • Yeni Kullanıcı
  • *
  • Karma: -1
Ynt: 2 TANE AYNI ÇEK
« Yanıtla #2 : 15.09.2008, 23:30 »
ÖNCELİKLE  CEVAP INIZ TEŞEKÜR EDERİM  INDEXS KOMUTU HARİÇ DİĞER KOMUTLARADA
(Command(s) completed successfully.)COMMAND BAŞARIYLA TAMAMLANDI MESAJI VERIYORDU
 
CREATE  UNIQUE  INDEX [I007_02_CSCARD_I2] ON [dbo].[LG_007_02_CSCARD]([DOC], [PORTFOYNO]) ON [PRIMARY]
( FİRMA NO 007 DÖNEM 02 )BU KOMMUTTADA

Msg 1913, Level 16, State 1, Line 2
The operation failed because an index or statistics with name 'I007_02_CSCARD_I2' already exists on table 'dbo.LG_007_02_CSCARD'.   BÖYLE MESAJ ÇİKTI   

ÇEK SENETLERİ AÇTİĞİMDA FAZLA ÇEK DURUYOR

Çevrimdışı mehmeterciyes

  • Logo Kullanıcısı Pro
  • ***
  • Karma: -1
Ynt: 2 TANE AYNI ÇEK
« Yanıtla #3 : 16.09.2008, 10:49 »
bu hatayı aynı portfoy numaralı çek senet olduğu için veriyor o zaman aşağıdakiş sorguyu çalıştırın ilgili çekleri bulup elle çıkarın

CEKSENET PORTFOY NUMARALARI TEK OLMAYANLARIN LİSTELENMESİ --------------
SELECT
            DOC, PORTFOYNO, COUNT(*) "SAYI"
FROM
            LG_010_01_CSCARD (NOLOCK)
GROUP BY
            DOC, PORTFOYNO
HAVING
            COUNT(*)>1


size liste yapar zaten

Çevrimdışı enginhazar

  • Yeni Kullanıcı
  • *
  • Karma: -1
Ynt: 2 TANE AYNI ÇEK
« Yanıtla #4 : 22.09.2008, 20:43 »
tekrar teşekürler: dediğiniz gibi komutu çaliştırınca 0(sıfır) satır
etkilendi  veriyor  daha öncede çek senetlerde fiş numaralama
işlemi yapmıştım dolayısıyla yukarıdada yazdığım gibi aynı numaralı
çek senet olayı yok  SİZDEN RİCAM   001324 pörtföy numaralı çeki
hangi sql komutu ile silebilirim

Çevrimdışı mehmeterciyes

  • Logo Kullanıcısı Pro
  • ***
  • Karma: -1
Ynt: 2 TANE AYNI ÇEK
« Yanıtla #5 : 23.09.2008, 10:04 »
 QUERRY ANALYSER DE    DELETE FROM LG_FFF_DD_CSCARD WHERE PORTFOYNO = 'XXXXXX' AMA GENEDE BİR BİLENLE BERABER YAPMANIZI ÖNERİRİM

Çevrimdışı enginhazar

  • Yeni Kullanıcı
  • *
  • Karma: -1
Ynt: 2 TANE AYNI ÇEK
« Yanıtla #6 : 24.09.2008, 20:23 »
 :-* :-* :-*  elınıze beyninize sağlık