none
Aynı verileri tek satır haline getirmek RRS feed

  • Soru

  • Merhaba Arkadaşlar,

    Aşağıda kod bölümünü girmeye çalıştım.

    AS StockCode na göre aynı gelen Kodları nasıl tek satırda gösterebilirim.DISTINCT fonsksiyonu denedim hata verdi. 

     

     


    SELECT * FROM (
          SELECT stok.sto_model_kodu AS CategoryCode,stok.sto_hammadde_kodu AS StockCode,stok.sto_yabanci_isim AS ModelName,
          ISNULL(stok_marka.mrk_ismi,' ') AS Manufacture,ISNULL(CAST(stok_fiyat.sfiyat_fiyati AS FLOAT),0) AS Price,ISNULL(CAST(stok_fiyat.sfiyat_fiyati AS FLOAT),0) AS ListPrice,
          CAST(ISNULL((stok_depo.DEPO_10+stok_depo.DEPO_1+stok_depo.DEPO_2+stok_depo.DEPO_3+stok_depo.DEPO_6+stok_depo.DEPO_7
          +stok_depo.DEPO_8+stok_depo.DEPO_10+stok_depo.DEPO_12+stok_depo.DEPO_14+stok_depo.DEPO_20
          ),0) AS INT) AS UnitInStock,
          (CASE WHEN sto_pasif_fl = 0 THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END) AS IsEnabled,
          dbo.fn_VergiYuzde(stok.sto_perakende_vergi) AS KDV,
          (CASE stok_fiyat.sfiyat_doviz
          WHEN 0 THEN 'TL'
          WHEN 1 THEN 'USD'
          WHEN 2 THEN 'EUR'
          WHEN 6 THEN 'CHR' ELSE 'TL' END) AS CurrencyType,
          CAST(1 AS INT) AS Desi
          FROM STOKLAR stok
          LEFT JOIN STOK_MARKALARI stok_marka ON stok.sto_marka_kodu = stok_marka.mrk_kod
          INNER JOIN STOK_SATIS_FIYAT_LISTELERI stok_fiyat ON stok.sto_kod = stok_fiyat.sfiyat_stokkod
          INNER JOIN dbo.FM_WEB_DEPO_MEVCUT_2 stok_depo ON stok.sto_kod = stok_depo.STOK
          LEFT JOIN STOK_ANAHAMMADDELERI stok_ana ON stok.sto_kod=stok_ana.ahm_kodu
         
          
          --INNER JOIN STOK_DEPO_DETAYLARI stok_depo ON stok.sto_kod =  stok_depo.sdp_depo_kod
          WHERE stok_fiyat.sfiyat_listesirano IN(1)-- AND stok_fiyat.sfiyat_deposirano IN({1}) AND stok_depo.sdp_depo_no IN ({1})
          ) AS URUNLER --WHERE URUNLER.UnitInStock > 0
    


     

    29 Eylül 2011 Perşembe 14:29

Yanıtlar

  • Bende bunu geliştirdim :)

    Sende bi dener misin?

    --DISTINCT StockCode,CategoryCode,ModelName,Manufacture,Price,ListPrice,UnitInStock,IsEnabled,KDV,Desi 
    SELECT DISTINCT StockCode,CategoryCode,Manufacture,ModelName,Price,ListPrice,IsEnabled,KDV,CurrencyType,Desi FROM (
          SELECT stok.sto_hammadde_kodu AS StockCode,
    			 stok.sto_model_kodu AS CategoryCode,
    			 stok.sto_isim,
    			 stok.sto_yabanci_isim AS ModelName,
    			 stok.sto_kod AS StokNo,
    			 ISNULL(stok_marka.mrk_ismi,' ') AS Manufacture,
    			 ISNULL(CAST(stok_fiyat.sfiyat_fiyati *(1 + dbo.fn_VergiYuzde(stok.sto_perakende_vergi) /100) AS FLOAT),0)AS Price,
    			 ISNULL(CAST(stok_fiyat.sfiyat_fiyati*(1 + (dbo.fn_VergiYuzde(stok.sto_perakende_vergi))/100) AS FLOAT),0) AS ListPrice,
    		(CASE WHEN sto_pasif_fl = 0 THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END) AS IsEnabled,
    			dbo.fn_VergiYuzde(stok.sto_perakende_vergi) AS KDV,
    			(CASE stok_fiyat.sfiyat_doviz
    			 WHEN 0 THEN 'TL'
    			 WHEN 1 THEN 'USD'
    			 WHEN 2 THEN 'EUR'
    			 WHEN 6 THEN 'CHR' ELSE 'TL' END) AS CurrencyType,
    			 CAST(1 AS INT) AS Desi,
    			 MAX(stok.sto_kod)AS TT 
          FROM STOKLAR stok
          LEFT JOIN STOK_MARKALARI stok_marka ON stok.sto_marka_kodu = stok_marka.mrk_kod
          INNER JOIN STOK_SATIS_FIYAT_LISTELERI stok_fiyat ON stok.sto_kod = stok_fiyat.sfiyat_stokkod
          --INNER JOIN dbo.FM_WEB_DEPO_MEVCUT_2 stok_depo ON stok.sto_kod = stok_depo.STOK
          LEFT OUTER JOIN STOK_ANAHAMMADDELERI stok_ana ON stok.sto_kod=stok_ana.ahm_kodu
          --INNER JOIN STOK_DEPO_DETAYLARI stok_depo ON stok.sto_kod =  stok_depo.sdp_depo_kod
          WHERE stok_fiyat.sfiyat_listesirano IN(1) AND stok.sto_hammadde_kodu<>'' --AND stok_fiyat.sfiyat_deposirano IN(1) AND stok_depo.sdp_depo_no IN (1)
        GROUP BY stok.sto_hammadde_kodu,stok.sto_model_kodu,stok.sto_isim,stok.sto_yabanci_isim,stok_marka.mrk_ismi,stok_fiyat.sfiyat_fiyati
        --,stok_depo.DEPO_10,stok_depo.DEPO_1,stok_depo.DEPO_2,stok_depo.DEPO_3,stok_depo.DEPO_6,stok_depo.DEPO_7
        --  ,stok_depo.DEPO_8,stok_depo.DEPO_10,stok_depo.DEPO_12,stok_depo.DEPO_14,stok_depo.DEPO_20,stok.sto_pasif_fl,stok_fiyat.sfiyat_doviz,
         , stok.sto_perakende_vergi,stok.sto_kod,sto_pasif_fl,stok_fiyat.sfiyat_doviz
       ) AS T WHERE T.StockCode <> ''
           --WHERE URUNLER.UnitInStock > 0
    


    • Yanıt Olarak İşaretleyen Emre Gunerturk 3 Ekim 2011 Pazartesi 09:03
    1 Ekim 2011 Cumartesi 08:21

Tüm Yanıtlar

  • Merhaba aşağıdaki kodu denemisiniz?

    select * from (
    SELECT *,ROW_NUMBER() over(partition by StockCode order by CategoryCode) sira FROM (
          SELECT stok.sto_model_kodu AS CategoryCode,stok.sto_hammadde_kodu AS StockCode,stok.sto_yabanci_isim AS ModelName,
          ISNULL(stok_marka.mrk_ismi,' ') AS Manufacture,ISNULL(CAST(stok_fiyat.sfiyat_fiyati AS FLOAT),0) AS Price,ISNULL(CAST(stok_fiyat.sfiyat_fiyati AS FLOAT),0) AS ListPrice,
          CAST(ISNULL((stok_depo.DEPO_10+stok_depo.DEPO_1+stok_depo.DEPO_2+stok_depo.DEPO_3+stok_depo.DEPO_6+stok_depo.DEPO_7
          +stok_depo.DEPO_8+stok_depo.DEPO_10+stok_depo.DEPO_12+stok_depo.DEPO_14+stok_depo.DEPO_20
          ),0) AS INT) AS UnitInStock,
          (CASE WHEN sto_pasif_fl = 0 THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END) AS IsEnabled,
          dbo.fn_VergiYuzde(stok.sto_perakende_vergi) AS KDV,
          (CASE stok_fiyat.sfiyat_doviz
          WHEN 0 THEN 'TL'
          WHEN 1 THEN 'USD'
          WHEN 2 THEN 'EUR'
          WHEN 6 THEN 'CHR' ELSE 'TL' END) AS CurrencyType,
          CAST(1 AS INT) AS Desi
          FROM STOKLAR stok
          LEFT JOIN STOK_MARKALARI stok_marka ON stok.sto_marka_kodu = stok_marka.mrk_kod
          INNER JOIN STOK_SATIS_FIYAT_LISTELERI stok_fiyat ON stok.sto_kod = stok_fiyat.sfiyat_stokkod
          INNER JOIN dbo.FM_WEB_DEPO_MEVCUT_2 stok_depo ON stok.sto_kod = stok_depo.STOK
          LEFT JOIN STOK_ANAHAMMADDELERI stok_ana ON stok.sto_kod=stok_ana.ahm_kodu
         
          
          --INNER JOIN STOK_DEPO_DETAYLARI stok_depo ON stok.sto_kod =  stok_depo.sdp_depo_kod
          WHERE stok_fiyat.sfiyat_listesirano IN(1)-- AND stok_fiyat.sfiyat_deposirano IN({1}) AND stok_depo.sdp_depo_no IN ({1})
          ) AS URUNLER --WHERE URUNLER.UnitInStock > 0
    ) t where sira=1
    


    30 Eylül 2011 Cuma 17:30
  • Bende bunu geliştirdim :)

    Sende bi dener misin?

    --DISTINCT StockCode,CategoryCode,ModelName,Manufacture,Price,ListPrice,UnitInStock,IsEnabled,KDV,Desi 
    SELECT DISTINCT StockCode,CategoryCode,Manufacture,ModelName,Price,ListPrice,IsEnabled,KDV,CurrencyType,Desi FROM (
          SELECT stok.sto_hammadde_kodu AS StockCode,
    			 stok.sto_model_kodu AS CategoryCode,
    			 stok.sto_isim,
    			 stok.sto_yabanci_isim AS ModelName,
    			 stok.sto_kod AS StokNo,
    			 ISNULL(stok_marka.mrk_ismi,' ') AS Manufacture,
    			 ISNULL(CAST(stok_fiyat.sfiyat_fiyati *(1 + dbo.fn_VergiYuzde(stok.sto_perakende_vergi) /100) AS FLOAT),0)AS Price,
    			 ISNULL(CAST(stok_fiyat.sfiyat_fiyati*(1 + (dbo.fn_VergiYuzde(stok.sto_perakende_vergi))/100) AS FLOAT),0) AS ListPrice,
    		(CASE WHEN sto_pasif_fl = 0 THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END) AS IsEnabled,
    			dbo.fn_VergiYuzde(stok.sto_perakende_vergi) AS KDV,
    			(CASE stok_fiyat.sfiyat_doviz
    			 WHEN 0 THEN 'TL'
    			 WHEN 1 THEN 'USD'
    			 WHEN 2 THEN 'EUR'
    			 WHEN 6 THEN 'CHR' ELSE 'TL' END) AS CurrencyType,
    			 CAST(1 AS INT) AS Desi,
    			 MAX(stok.sto_kod)AS TT 
          FROM STOKLAR stok
          LEFT JOIN STOK_MARKALARI stok_marka ON stok.sto_marka_kodu = stok_marka.mrk_kod
          INNER JOIN STOK_SATIS_FIYAT_LISTELERI stok_fiyat ON stok.sto_kod = stok_fiyat.sfiyat_stokkod
          --INNER JOIN dbo.FM_WEB_DEPO_MEVCUT_2 stok_depo ON stok.sto_kod = stok_depo.STOK
          LEFT OUTER JOIN STOK_ANAHAMMADDELERI stok_ana ON stok.sto_kod=stok_ana.ahm_kodu
          --INNER JOIN STOK_DEPO_DETAYLARI stok_depo ON stok.sto_kod =  stok_depo.sdp_depo_kod
          WHERE stok_fiyat.sfiyat_listesirano IN(1) AND stok.sto_hammadde_kodu<>'' --AND stok_fiyat.sfiyat_deposirano IN(1) AND stok_depo.sdp_depo_no IN (1)
        GROUP BY stok.sto_hammadde_kodu,stok.sto_model_kodu,stok.sto_isim,stok.sto_yabanci_isim,stok_marka.mrk_ismi,stok_fiyat.sfiyat_fiyati
        --,stok_depo.DEPO_10,stok_depo.DEPO_1,stok_depo.DEPO_2,stok_depo.DEPO_3,stok_depo.DEPO_6,stok_depo.DEPO_7
        --  ,stok_depo.DEPO_8,stok_depo.DEPO_10,stok_depo.DEPO_12,stok_depo.DEPO_14,stok_depo.DEPO_20,stok.sto_pasif_fl,stok_fiyat.sfiyat_doviz,
         , stok.sto_perakende_vergi,stok.sto_kod,sto_pasif_fl,stok_fiyat.sfiyat_doviz
       ) AS T WHERE T.StockCode <> ''
           --WHERE URUNLER.UnitInStock > 0
    


    • Yanıt Olarak İşaretleyen Emre Gunerturk 3 Ekim 2011 Pazartesi 09:03
    1 Ekim 2011 Cumartesi 08:21