T-Sql Yardım

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cemnet
    cemnet's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek

    2 tablom var 1 sorgu ve birde sorgu içinde dinamik sutun açmam lazım. iç içe select gibi kulağa geliyor ama oyle değil. çünkü diğer selectte birden fazla kayıt var. Nasıl mı?

    Tablo 1: Urun (UrunID,UrunAdi,SehirID)

    Tablo2: UrunSehir(UrunSehirID,SehirID,UrunID)

    select UrunID,UrunAdi,SehirID,(select SehirID from UrunSehir where UrunSehir.UrunID = Urun.UrunID) from Urun

     

    siyah olan kısımda birden fazla kayıt var ve sorgu haliyle patlıyor. Ordaki birden fazla olan kayıtı "2,5,7,1" şeklinde nasıl gösterebilirim? Aklıma function yapıp fetch ile döndürmek geldi ama başka yolu var mı?

     

     

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Sharp
    Sharp's avatar
    Kayıt Tarihi: 02/Temmuz/2007
    Erkek

    Select a.*,b.* from Urun a

    inner join UrunSehir b on a.SehirID=b.UrunSehirID

    bu sana 2 tablodaki bütün kayıtları listeler


    www.yesilgrow.com - Growshop
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hojucuk
    hojucuk's avatar
    Kayıt Tarihi: 05/Mayıs/2003
    Erkek

    join kullanabilirsin

    SELECT p.UrunID, p.UrunAdi, p.SehirID AS p_SehirID, pc.SehirID AS pc_SehirID FROM Urun AS p INNER JOIN UrunSehir AS pc WHERE p.UrunID = pc.UrunID

    temel olarak p.UrunID'nin degisip degismedigini kontrol et, degismemisse ayni satirdadir.

    hojucuk tarafından 11/Ara/13 10:03 tarihinde düzenlenmiştir

    C* ya hepsin ya hic..ya TÜRK"sün ya pic!
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cemnet
    cemnet's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek

    hocalar Join olmaz çünkü her ürün kaydı bir kere gelmesi lazım

     

     

    select UrunID,UrunAdi,SehirID,(1,4,6,8) from Urun

    gibi olması lazım sorgu sonucunun

    cemnet tarafından 11/Ara/13 10:17 tarihinde düzenlenmiştir
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cemnet
    cemnet's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek

    alttaki kod çalıştıta bunu fonksyona alamadım şuan onla uğraşıyorum :D

     

    DECLARE @r VARCHAR(800),@rs VARCHAR(800)

    DECLARE c1 CURSOR

    FOR SELECT SehirID FROM UrunSehir where UrunID=94

    OPEN c1

    FETCH NEXT FROM c1 INTO @rs

    SET @r=@rs

    WHILE @@FETCH_STATUS = 0

    BEGIN

    FETCH NEXT FROM c1 INTO @rs

    if(@@FETCH_STATUS=0)

    SET @r=@r+','+@rs

    END

    select @r

    CLOSE c1

    DEALLOCATE c1

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cemnet
    cemnet's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek

    ve çalıştı mutlu son

    select UrunID,UrunAdi,SehirID,ver(94) from Urun

     

    alter FUNCTION [dbo].[ver] (@ID INT)

    RETURNS nVARCHAR(800)

    AS

    BEGIN

     

    DECLARE @r VARCHAR(800),@rs VARCHAR(800)

    DECLARE c1 CURSOR

    FOR SELECT SehirID FROM UrunSehir where UruntID=@ID

    OPEN c1

    FETCH NEXT FROM c1 INTO @rs

    SET @r=@rs

    WHILE @@FETCH_STATUS = 0

    BEGIN

    FETCH NEXT FROM c1 INTO @rs

    if(@@FETCH_STATUS=0)

    SET @r=@r+','+@rs

    END

    --select @r

    CLOSE c1

    DEALLOCATE c1

     

     

    RETURN(@r);

    END

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hojucuk
    hojucuk's avatar
    Kayıt Tarihi: 05/Mayıs/2003
    Erkek

    hoca hazir konu acilmisken , burada bulunsun

    concatenating aggregation https://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/

     


    C* ya hepsin ya hic..ya TÜRK"sün ya pic!
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cemnet
    cemnet's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek
    hojucuk bunu yazdı

    hoca hazir konu acilmisken , burada bulunsun

    concatenating aggregation https://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/

     

    hmm buda iyimiş elbet bir gün lazım olur bu seneryo

      

Toplam Hit: 720 Toplam Mesaj: 8