SQL Sorgu yardım.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Asri
Kıdemli Üye
Mesajlar: 767
Kayıt: 16 Eyl 2003 09:54
Konum: istanbul

SQL Sorgu yardım.

Mesaj gönderen Asri »

Merhaba,

Aynı Database de

TABLO1 Aşağıdaki şekildeki bir tablodaki bilgileri
kod kod2 digit
x1---k1---0
x1---k1---1
x1---k1---1
x2---k1---1
x2---k1---0
x2---k1---1
x3---k1---1
x3---k1---1
x3---k1---0

TABLO2 Aşağıdaki şekilde başka bir tabloya sql server da sorgu ile nasıl insert yapabilirim.
kod Kod2 digit
x1---k1---011
x2---k1---101
x3---k1---110
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: SQL Sorgu yardım.

Mesaj gönderen vkamadan »

Merhabalar
yol gösterici olması adına MySQL de nasıl yapıldığından bahsedeyim MSSQL de karşılığının olduğuna emin değilim ama en azından araştırmanız için anahtar kelimeler oluşur.

Kod: Tümünü seç

SELECT kod , kod2 , GROUP_CONCAT( tablo1.digit SEPARATOR "" ) as digit FROM table1 GROUP BY kod,kod2
bu SQL ifadesi size TABLE2 ye insert etmek istediğininiz veriyi hazırlayacak, anahtar kelime GROUP_CONCAT

iyi çalışmalar.

Edit ;

GROUP_CONCAT() MSSQL de mevcut değilmiş ancak UDF olarak ekleyebilirmişsiniz şöyle bir link var http://www.exacthelp.com/2014/04/groupc ... n-sql.html
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
Asri
Kıdemli Üye
Mesajlar: 767
Kayıt: 16 Eyl 2003 09:54
Konum: istanbul

Re: SQL Sorgu yardım.

Mesaj gönderen Asri »

Teşekkür ederim,

coalesce ve for xml path ile birşeyler yapmaya çalıştım ama yeterli olmadı.
Aşağıdaki kodun sonucunda 011 olarak sonuç dönüyor.
Ancak benim elle x1 ve k1 değerlerini girmem gerekiyor.

Tüm sonuçları bu şekilde tablo2 ye nasıl aktarabilirim onu araştıryorum.

SQL de bilgili biri değilim : )

Kod: Tümünü seç

select replace (
(
SELECT coalesce(tb1.digit,'') [data()]
  FROM TABLO1 tb1
  WHERE tb1.kod ='x1' and  tb1.kod2='k1'
  FOR XML PATH('')
  ),' ','')
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
Kullanıcı avatarı
Asri
Kıdemli Üye
Mesajlar: 767
Kayıt: 16 Eyl 2003 09:54
Konum: istanbul

Re: SQL Sorgu yardım.

Mesaj gönderen Asri »

vkamadan yazdı:Merhabalar
yol gösterici olması adına MySQL de nasıl yapıldığından bahsedeyim MSSQL de karşılığının olduğuna emin değilim ama en azından araştırmanız için anahtar kelimeler oluşur.

Kod: Tümünü seç

SELECT kod , kod2 , GROUP_CONCAT( tablo1.digit SEPARATOR "" ) as digit FROM table1 GROUP BY kod,kod2
bu SQL ifadesi size TABLE2 ye insert etmek istediğininiz veriyi hazırlayacak, anahtar kelime GROUP_CONCAT

iyi çalışmalar.

Edit ;

GROUP_CONCAT() MSSQL de mevcut değilmiş ancak UDF olarak ekleyebilirmişsiniz şöyle bir link var http://www.exacthelp.com/2014/04/groupc ... n-sql.html
UDF yi yükleyince hatalar verdi.
Araştırıyorum. Aynı zamanda MSSQL için çözümlerde bakıyorum : )

Msg 2812, Level 16, State 62, Line 1
Could not find stored procedure 'SP_CONFIGURE'.
Msg 10327, Level 14, State 1, Line 2
CREATE ASSEMBLY for assembly 'CLRAggrigates' failed because assembly 'CLRAggrigates' is not authorized for PERMISSION_SET = EXTERNAL_ACCESS. The assembly is authorized when either of the following is true: the database owner (DBO) has EXTERNAL ACCESS ASSEMBLY permission and the database has the TRUSTWORTHY database property on; or the assembly is signed with a certificate or an asymmetric key that has a corresponding login with EXTERNAL ACCESS ASSEMBLY permission.
Msg 6528, Level 16, State 1, Line 2
Assembly 'CLRAggrigates' was not found in the SQL catalog of database 'master'.
En son Asri tarafından 16 May 2016 02:03 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: SQL Sorgu yardım.

Mesaj gönderen vkamadan »

Merhabalar ,
http://stackoverflow.com/questions/4514 ... sql-server burda epey bir yol gösteren olmuş , aktif bir MSSQL kullanıcısı değilim deneyip net bir örnek veremiyorum bu sebeple.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
Asri
Kıdemli Üye
Mesajlar: 767
Kayıt: 16 Eyl 2003 09:54
Konum: istanbul

Re: SQL Sorgu yardım.

Mesaj gönderen Asri »

vkamadan yazdı:Merhabalar ,
http://stackoverflow.com/questions/4514 ... sql-server burda epey bir yol gösteren olmuş , aktif bir MSSQL kullanıcısı değilim deneyip net bir örnek veremiyorum bu sebeple.
Teşekkür ederim. Ben de aynı şekilde :)
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
Kullanıcı avatarı
Asri
Kıdemli Üye
Mesajlar: 767
Kayıt: 16 Eyl 2003 09:54
Konum: istanbul

Re: SQL Sorgu yardım.

Mesaj gönderen Asri »

Problem aşağıdaki şekilde çözüldü.

Kod: Tümünü seç

drop table TABLO1
CREATE TABLE [dbo].[TABLO1]([ID] [int] IDENTITY(1,1) NOT NULL,
    [kod] [nchar](11) NOT NULL,
    [kod2] [nchar](11) NOT NULL,
    [digit] [bit] NULL)

insert into tablo1  values ('x1','k1','1')
insert into tablo1  values ('x1','k1','0')
insert into tablo1  values ('x1','k1','0')
insert into tablo1  values ('x2','k1','1')
insert into tablo1  values ('x2','k1','1')
insert into tablo1  values ('x2','k1','0')
insert into tablo1  values ('x3','k1','1')
insert into tablo1  values ('x3','k1','1')
insert into tablo1  values ('x3','k1','1')

 
SELECT t1.kod,t1.kod2,
       digits =REPLACE( (SELECT digit AS [data()]
           FROM tablo1 t2
          WHERE t2.kod = t1.kod
          ORDER BY digit
            FOR XML PATH('')
            ), ' ', '')
      FROM tablo1 t1
      GROUP BY kod,kod2
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
kerpeten
Üye
Mesajlar: 62
Kayıt: 26 May 2016 01:31

Re: SQL Sorgu yardım.

Mesaj gönderen kerpeten »

MSSQL'de T1 tablosundaki tüm kayıtları T2'ye eklemek için;
eğer iki tablo da aynı yapıdaysa şunu kullanabilirsiniz.

Kod: Tümünü seç

insert into T2 select * from T1;
Ancak eğer iki tablo aynı yapıda değilse şu şekilde de kullanabilirsiniz.

Kod: Tümünü seç

insert into T2 (kod, kod2, sayi) select kod, kod2, sayi from T1;
Kullanıcı avatarı
Asri
Kıdemli Üye
Mesajlar: 767
Kayıt: 16 Eyl 2003 09:54
Konum: istanbul

Re: SQL Sorgu yardım.

Mesaj gönderen Asri »

Bilgi için teşekkür ederim.
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
Cevapla