none
EXCEL INNER JOIN RRS feed

  • Soru

  • Arkadaşlar Herkese Merhaba

    C# içerisinde Excel Tablolarını JOIN Yapmaya Çalışıyorum İlk Joinde Çalışıyor Yani İki Tabloyu Birbirine Bağlıyor Ancak 2. Joinde Aşağıdaki Hatayı Alıyorum.

    Sorunum Şu

    Additional information: 's4.Assoc = s1.RptdBy LEFT OUTER JOIN [Sayfa2$] s2  ON s2.IncId = s1.IncI' sorgu ifadesi içindeki Sözdizimi hatası (eksik işleç)

    Provider :

    string ExconnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filenamePath.Replace("'",string.Empty) + ";Extended Properties=Excel 8.0;";

    Sorgu :

    string sorgu = "SELECT * FROM [Sayfa1$] s1 "+
                           "LEFT OUTER JOIN [Sayfa4$] s4  ON s4.Assoc = s1.RptdBy "+
                           "LEFT OUTER JOIN [Sayfa2$] s2  ON s2.IncId = s1.IncID ";

    2 Temmuz 2015 Perşembe 09:47

Yanıtlar

  • ACE :)

    3.join icin basa bir tane daha ( parantez eklemen gerekiyor.

    Bu arada, s3 iki kere lokal alias olarak kullanilmis, sanirim o yazim hatasi.

    string sorgu = @"SELECT  * FROM 
    (
      (
        ( 
      [Sayfa1$] s1 
      LEFT OUTER JOIN [Sayfa2$] s2  ON s2.IncId = s1.IncID  
        ) 
      LEFT OUTER JOIN [Sayfa3$] s3  ON s3.IncID = s1.IncID  
      )
      LEFT OUTER JOIN [Sayfa4$] s4  ON s4.Assoc = s1.RptdBy 
    ) ";
    Parantezler acik gorulsun diye yazimi biraz abarttim :)

    • Yanıt Olarak İşaretleyen Veli FİLİZ 2 Temmuz 2015 Perşembe 16:08
    2 Temmuz 2015 Perşembe 13:07
    Yanıtlayıcı

Tüm Yanıtlar

  • Problem sende degil, ACE.Oledb'nin salak Access engine'ini kullanmasinda :) access = bas agrisi, non-standard aptal SQL syntax. Bir dilin kurallari olmasini anlarim da, database diye gecinen bir seyin, standard bir dil uzerindeki salakca degisiklikleri hasta ediyor beni de (hos o ANSI SQL kullanmadigi icin kendisini istedigi gibi degisiklik yapmakta ozgur hissediyordur, e be adamlar bari 1980'lerde bile gecerli olan SQL'e uysaydiniz).

    string sorgu = @"SELECT * FROM (( [Sayfa1$] s1 
      LEFT OUTER JOIN [Sayfa4$] s4 ON s4.Assoc = s1.RptdBy )
      LEFT OUTER JOIN [Sayfa2$] s2  ON s2.IncId = s1.IncID )";

     

    • Yanıt Olarak İşaretleyen Veli FİLİZ 2 Temmuz 2015 Perşembe 11:50
    • Yanıt İşaretini Geri Alan Veli FİLİZ 2 Temmuz 2015 Perşembe 12:49
    2 Temmuz 2015 Perşembe 10:51
    Yanıtlayıcı
  • Çok saçma bir durum standart sql kuralları işletiyoe diye düşünüyordum teşekkürler
    2 Temmuz 2015 Perşembe 11:41
  •             string sorgu = @"SELECT  * FROM ( ([Sayfa1$] s1
                LEFT OUTER JOIN [Sayfa2$] s2  ON s2.IncId = s1.IncID  )
                LEFT OUTER JOIN [Sayfa3$] s3  ON s3.IncID = s1.IncID  )
                LEFT OUTER JOIN [Sayfa4$] s3  ON s4.Assoc = s1.RptdBy ) ";

    3. JOINDE Yine Patladı From Yan Sözcüğü Hatalı Diyor :(

    2 Temmuz 2015 Perşembe 12:33
  • ACE :)

    3.join icin basa bir tane daha ( parantez eklemen gerekiyor.

    Bu arada, s3 iki kere lokal alias olarak kullanilmis, sanirim o yazim hatasi.

    string sorgu = @"SELECT  * FROM 
    (
      (
        ( 
      [Sayfa1$] s1 
      LEFT OUTER JOIN [Sayfa2$] s2  ON s2.IncId = s1.IncID  
        ) 
      LEFT OUTER JOIN [Sayfa3$] s3  ON s3.IncID = s1.IncID  
      )
      LEFT OUTER JOIN [Sayfa4$] s4  ON s4.Assoc = s1.RptdBy 
    ) ";
    Parantezler acik gorulsun diye yazimi biraz abarttim :)

    • Yanıt Olarak İşaretleyen Veli FİLİZ 2 Temmuz 2015 Perşembe 16:08
    2 Temmuz 2015 Perşembe 13:07
    Yanıtlayıcı
  • Evet Hpcam hallettim Bune Biçim İşmiş Böyle Ya Alışılmışın Çok Dışında
    2 Temmuz 2015 Perşembe 14:16
  • Ben bosuna "access yeryuzunden kazinsin" diye dua etmiyorum :)
    2 Temmuz 2015 Perşembe 14:18
    Yanıtlayıcı