Şimdi Ara

SQL Birden Fazla Müşteri Numarasına Bağlı Ürün Dummylerini Birleştirme

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
223
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba,

    Aşağıda görselde dummy ler ile o ürün grubundan müşterinin ürün alımı olduysa 1 olmadıysa 0 getir denilerek oluşturulmuştur.
    1 müşteri, 30 gün içinde tekrar alışveriş yaptıysa veya alışverişi buradaki gibi aynı günde ama farklı saatlerdeyse; her satırda büyük olan dummy i (1=ürün alındı) yazmasını ve tekilleştirmesini istiyorum.

     SQL Birden Fazla Müşteri Numarasına Bağlı Ürün Dummylerini Birleştirme

    (
    SELECT
    CASE WHEN COUNT(*)=0 THEN 0 ELSE 1 END
    FROM
    [TepeBI].[T_TEPE_MUSTERI_SATIS] S
    WHERE S.[UNQ_MUSTERI_ID]=A.[UNQ_MUSTERI_ID]
    AND S.SIPARIS_TARIHI BETWEEN A.[SIPARIS_TARIHI] AND A.[SIPARIS_TARIHI]+30
    )
    OTUZ_GUNDE_TEKRAR_SATISI_VAR_MI

    30 günde tekrar satışı varsa yukarıdaki gibi ayrı bir değişken oluşturdum ancak aynı tarihli, farklı saatli olan siparişleri görmüyor.
    Bu sql i nasıl yazabilirim?
    Yardımcı olabilirseniz çok sevinirim.







  • Benim yazdığım SQL in tamamı :
    Burada ihtiyacım olan A.UNQ_MUSTERI_ID=S.UNQ_MUSTERI_ID AND S.SIPARIS_TARIHI>=A.SIPARIS_TARIHI

    diyerek ROW 'lu bir değişkenle Yemek, Yatak ve Oturma ve Genç Odası değişkenlerinde büyük olan dummy 'i tek satırda almasını sağlamak.


    (
    SELECT
    CASE WHEN COUNT(*)=0 THEN 0 ELSE 1 END
    FROM
    [TepeBI].[T_TEPE_MUSTERI_SATIS] S
    WHERE S.[UNQ_MUSTERI_ID]=A.[UNQ_MUSTERI_ID]
    AND S.SIPARIS_TARIHI >= A.[SIPARIS_TARIHI]
    )
    TEKRAR_SATISI_VAR_MI

    FROM

    (
    SELECT
    SATIS.[UNQ_MUSTERI_ID]
    ,MAG.[MAGAZA_ADI]
    ,MAG.[SEHIR]
    ,SATIS.[SIP_ID]
    ,MAX(SATIS.SIPARIS_TARIHI) AS SIPARIS_TARIHI
    ,YEAR([SIPARIS_TARIHI]) AS YIL
    ,MONTH([SIPARIS_TARIHI]) AS AY

    , MAX(CASE WHEN ITEM.AYRIM_NAME = 'Yemek Odaları' OR
    ITEM.AYRIM_NAME = 'YEMEK ODASI'

    THEN 1
    ELSE 0
    END) AS YEMEK_ODASI
    ,
    MAX(CASE WHEN ITEM.AYRIM_NAME='Yatak ve Somyalar' OR
    ITEM.AYRIM_NAME='EBEVEYN ODASI' OR
    ITEM.AYRIM_NAME='Ebeveyn Yatak Odası'

    THEN 1
    ELSE 0
    END) AS YATAK_ODASI
    ,
    MAX(CASE WHEN ITEM.AYRIM_NAME='OTURMA ODASI' OR
    ITEM.AYRIM_NAME='Oturma Odası Takımları'

    THEN 1
    ELSE 0
    END) AS OTURMA_ODASI
    ,
    MAX(CASE WHEN ITEM.AYRIM_NAME='Genç Odaları' OR
    ITEM.AYRIM_NAME='ÇOCUK ve GENÇ ODASI'

    THEN 1
    ELSE 0
    END) AS GENC_ODASI

    FROM [TepeBI].[T_MTL_ITEM_CATEGORIES] ITEM

    INNER JOIN [TepeBI].[T_TEPE_MUSTERI_SATIS] SATIS
    ON ITEM.[INVENTORY_ITEM_ID] = SATIS.[URUN_ID]

    INNER JOIN [TepeBI].[T_MAGAZA_BILGILERI] MAG
    ON SATIS.[ORG_ID] = MAG.[ORG_ID]

    WHERE YEAR([SIPARIS_TARIHI]) >= 2015
    AND SATIS.[BI_UPDATE] is null
    AND MAG.[MAGAZA_BAYII]='MAGAZA'

    GROUP BY
    SATIS.[UNQ_MUSTERI_ID],
    MAG.[MAGAZA_ADI],
    MAG.[SEHIR],
    SATIS.[SIP_ID],
    YEAR([SIPARIS_TARIHI]),
    MONTH([SIPARIS_TARIHI])
    ) A

    ORDER BY A.[UNQ_MUSTERI_ID],
    A.[SIPARIS_TARIHI]




  • Çok karışık yazmışsın ne tablo bilgilerin belli ne tablolardaki dataların mevcut.

    Nasıl yazılmasını bekliyorsun sadece sorgunu yazarak ? Tahmin mi edeceğiz.

    Tabloların create ve insert scriptlerin olsaydı yardım edilirdi.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.