sql 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 sorgusu

Mesaj gönderen erdogan_ozkaya »

Arkadaşlar,

Aşağıdaki kodda yanllış olan nedir acaba ?

Kod: Tümünü seç

INSERT INTO DEPOLAR (CALISILAN_FIRMA_ID, Depo_Adi, Aciklama, Adres,Sehir,Telefon,Yetkili)
values( 'CALISILAN_FIRMA_ID','Depo_Adi','Aciklama','Adres',(SELECT Sehir,Telefon,Yetkili FROM DEPOLAR   ))

tablo
CREATE TABLE [dbo].[DEPOLAR](
	[Depo_Kodu] [int] IDENTITY(1,1) NOT NULL,
	[CALISILAN_FIRMA_ID] [varchar](50) NULL,
	[Depo_Adi] [varchar](50) NULL,
	[Aciklama] [varchar](50) NULL,
	[Adres] [varchar](50) NULL,
	[Sehir] [varchar](50) NULL,
	[Telefon] [varchar](50) NULL,
	[Yetkili] [varchar](50) NULL

Teşekküler
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: sql sorgusu

Mesaj gönderen thelvaci »

Birinci olarak CALISILAN_FIRMA_ID isimli alanınız bana bu alanın sayısal bir alan olması gerektiğini düşündürüyor. Yani mantıksal bir sorun var burada. İkinci olarak DEPOLAR tablosundan select etmişsiniz, dolayısı ile birden fazla (ya da sıfır) kayıt gelebilir buradan. Ya SELECT TOP 1 biçiminde kullanmalı ya da sorgunuzun sonuna bir WHERE condition eklemelisiniz.
erdogan_ozkaya yazdı:Arkadaşlar,

Aşağıdaki kodda yanllış olan nedir acaba ?

Kod: Tümünü seç

INSERT INTO DEPOLAR (CALISILAN_FIRMA_ID, Depo_Adi, Aciklama, Adres,Sehir,Telefon,Yetkili)
values( 'CALISILAN_FIRMA_ID','Depo_Adi','Aciklama','Adres',(SELECT Sehir,Telefon,Yetkili FROM DEPOLAR   ))

tablo
CREATE TABLE [dbo].[DEPOLAR](
	[Depo_Kodu] [int] IDENTITY(1,1) NOT NULL,
	[CALISILAN_FIRMA_ID] [varchar](50) NULL,
	[Depo_Adi] [varchar](50) NULL,
	[Aciklama] [varchar](50) NULL,
	[Adres] [varchar](50) NULL,
	[Sehir] [varchar](50) NULL,
	[Telefon] [varchar](50) NULL,
	[Yetkili] [varchar](50) NULL

Teşekküler
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: sql sorgusu

Mesaj gönderen erdogan_ozkaya »

HOCAM AŞAĞIDAKİ ŞEKİLLE ÇALIŞIYOR

AMA BAZEN Depo_Adi farkli olabiliyor

Kod: Tümünü seç

 INSERT INTO DEPOLAR (CALISILAN_FIRMA_ID, Depo_Adi, Aciklama, Adres,Sehir,Telefon,Yetkili)
     
 SELECT CALISILAN_FIRMA_ID, Depo_Adi, Aciklama, Adres,Sehir,Telefon,Yetkili FROM DEPOLAR WHERE Depo_Kodu = '34'
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: sql sorgusu

Mesaj gönderen thelvaci »

Bu şeklilde çalışması doğal. Çünkü SELECT ile çekiyorsunuz verileri ve çektiğiniz verileri INSERT ifadesine aktarıyorsunuz. Yani bu SELECT'ten birden fazla kayıt dönse de sorun olmaz kaç kayıt döner ise o kadar INSERT işlemi gerçekleşir. Ancak bir önceki örnekte Values kullanıyorsunuz; dolayısı ile her bir alana bir değer bekleniyor.
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: sql sorgusu

Mesaj gönderen erdogan_ozkaya »

nasıl ekleyebilirim hatayı görebiliyormusun acaba?

Kod: Tümünü seç

INSERT INTO DEPOLAR (SELECT Depo_Kodu, CALISILAN_FIRMA_ID, Depo_Adi, Aciklama, Adres ,Sehir ,Telefon ,Yetkili)
values(NewId()'Depo_Kodu','CALISILAN_FIRMA_ID','Depo_Adi','Aciklama',

(SELECT  Adres ,Sehir ,Telefon ,Yetkili FROM DEPOLAR ))
teşekkürler
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: sql sorgusu

Mesaj gönderen thelvaci »

INSERT INTO..SELECT ifadesi daha esnektir onu kullanmanızı önerebilirim. Hata mı alıyorsunuz sql cümleniz de ?
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: sql sorgusu

Mesaj gönderen erdogan_ozkaya »

yapmak istediğim şu detay diye bir tablom var mükerrer kayıt oluşutmak istiyorum oluştururkende bazı değerleri manuel girmeliyim
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: sql sorgusu

Mesaj gönderen thelvaci »

Yine garip bir kullanımınız olmuş. Aşağıdaki gibi deneyebilirsiniz:

Kod: Tümünü seç

  INSERT INTO Depolar(
  	Depo_Kodu, 
  	Depo_Kodu, 
  	CALISILAN_FIRMA_ID, 
  	Depo_Adi, 
  	Aciklama, 
  	Adres ,
  	Sehir ,
  	Telefon ,
  	Yetkili)
  SELECT
    NewID(),
    'CALISILAN_FIRMA_ID',
    'Depo_Adi',
    'Aciklama',
    Adres ,
    Sehir ,
    Telefon ,
    Yetkili
  FROM DEPOLAR
  WHERE ??
erdogan_ozkaya yazdı:nasıl ekleyebilirim hatayı görebiliyormusun acaba?

Kod: Tümünü seç

INSERT INTO DEPOLAR (SELECT Depo_Kodu, CALISILAN_FIRMA_ID, Depo_Adi, Aciklama, Adres ,Sehir ,Telefon ,Yetkili)
values(NewId()'Depo_Kodu','CALISILAN_FIRMA_ID','Depo_Adi','Aciklama',

(SELECT  Adres ,Sehir ,Telefon ,Yetkili FROM DEPOLAR ))
teşekkürler
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: sql sorgusu

Mesaj gönderen erdogan_ozkaya »

hata veriyor

Kod: Tümünü seç

  INSERT INTO Depolar(
     Depo_Kodu,  
     CALISILAN_FIRMA_ID, 
     Depo_Adi, 
     Aciklama, 
     Adres ,
     Sehir ,
     Telefon ,
     Yetkili)
  SELECT
    NewID(),
    '12',
    'İSTANBUL DEPO',
    'YEDEK PARÇA DEPOSU',
    Adres , 
    Sehir ,
    Telefon ,
    Yetkili
  FROM DEPOLAR
  WHERE Depo_Kodu = '34'

Operand type clash: uniqueidentifier is incompatible with int
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: sql sorgusu

Mesaj gönderen thelvaci »

NewID alanı, Depo_Kodu alanına yazılmaya çalışılıyor da ondan ;) Siz alanları düzgün bir sıraya sokmalısınız.
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: sql sorgusu

Mesaj gönderen erdogan_ozkaya »

TAMM OLDU ÇOK TEŞEKKÜR EDERİM

Kod: Tümünü seç

  INSERT INTO SATIS_FATURA_DETAY (
       Cari_Kart_ID
      ,Fatura_No
      ,Calisilan_Firma
      ,Ekleyen
      ,Cikis_Tarihi
      ,Depo_Kodu
      ,Stok_Kodu
      ,Aciklama
      ,Birim_Fiyat
      ,Birim_Miktari
      ,Birim_Turu
      ,Iskonto
      ,Iskonto_Orani
      ,Cikan_Iskonto
      ,KDV_Oran
      ,Satir_Toplami
      ,OTV
      ,OTV_Oran
      ,Satir_KDV
      ,Satir_Genel_Toplami
      ,Irsaliye_No
      ,Durumu
      ,Vade_Tarihi
      ,Irsaliye_Tarihi
      ,FATURA_ID
      ,FIS_TIPI
      ,ISLEM_TARIHI
      ,SERVIS_ID
      ,ISKONTOLAR
      ,ISKONTO_ORAN
      ,ILK_TUTAR
      ,TEKLIF_ID
      ,FATURA_ID33
      ,BARKOD  )
SELECT NULL,
      ,'TEMP'
      ,Calisilan_Firma
      ,Ekleyen
      ,NULL,
      ,NULL,
      ,Stok_Kodu
      ,Aciklama
      ,Birim_Fiyat
      ,Birim_Miktari
      ,Birim_Turu
      ,Iskonto
      ,Iskonto_Orani
      ,Cikan_Iskonto
      ,KDV_Oran
      ,Satir_Toplami
      ,OTV
      ,OTV_Oran
      ,Satir_KDV
      ,Satir_Genel_Toplami
      ,Irsaliye_No
      ,Durumu
      ,Vade_Tarihi
      ,Irsaliye_Tarihi
      ,FATURA_ID
      ,'SatisFaturasi'
      ,ISLEM_TARIHI
      ,SERVIS_ID
      ,ISKONTOLAR
      ,ISKONTO_ORAN
      ,ILK_TUTAR
      ,TEKLIF_ID
      ,FATURA_ID33
      ,BARKOD  
  FROM SATIS_FATURA_DETAY 
  WHERE ID = '72584'
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: sql sorgusu

Mesaj gönderen thelvaci »

Rica ederim, kolay gelsin.
Cevapla