Saat bazında ürün satış raporu

Merhabalar iki saat arasındaki satılan ürünleri raporlamak istiyorum yardımcı olurmusunuz

Merhaba,

İki saat aralığında satılan ürünleri raporlamak için Ürün Satış Raporunu açın ve yukarıda tarih yazılan yere saat aralığını manuel yazın ve yenile butonuna tıklayın yazdığınız saat aralığında rapor oluşacaktır.

2 Beğeni

bu şekilde değilde müşterim örn 12 ie 13 arasında döner 5 adet ayran 3 adet gibi saatlere göre ürünleri değiştirip satışlarını arttırmak istiyor

Tam olarak ne yapmak istediğinizi anlamakta güçlük çekiyoruz, açık açık tüm detayları ile senaryonuzu yazarsanız yardımcı olmak isteriz.

Aşağıdaki rapor işinizi görür mü ?

[Saatlik Satış Averajı: 15, 25, 15, 20, 20]

Saat|Satış|#TR|AVG TR|% Oranı
@@SalesPerHour:00,23

Raporun çalışması için aşağıdaki scripti de Otomasyon kısmındaki Komutlar bölümüne yapıştırmanız gerek.

Birebir aynı şekilde ayarlamayı unutmayın.

sales

declare @StartDate datetime = '{Start}' -- use '{Start}' here
declare @EndDate datetime = '{End}'   -- use '{End}' here
declare @StartHour int = @1 -- set the First Hour you want to track
declare @EndHour int = @2  -- set the Last Hour you want to track

/************************************/

declare @Hour int = 00.00
declare @TotalSales money = 0.00

declare @tbl_Sales table
(
[ID]  INT IDENTITY(1,1) NOT NULL 
,[Hour] VARCHAR(255)
,[Amount] decimal(9,2)
,[Tickets] int
,[AvgTx] decimal(5,2)
,[Percent] decimal(5,2)
)

set @Hour = @StartHour

WHILE @Hour < @EndHour+1
BEGIN
    INSERT INTO @tbl_Sales
    SELECT
      @Hour as [Hour]
    , SUM(CASE WHEN (DATEPART(hour,[Date])>=@Hour AND DATEPART(hour,[Date])<@Hour+1)
               THEN [TotalAmount]
               ELSE 0 END) as [Amount]
    , COUNT(CASE WHEN (DATEPART(hour,[Date])>=@Hour AND DATEPART(hour,[Date])<@Hour+1)
               THEN 1
               ELSE null END) as [Tickets]
    ,0,0
    FROM [dbo].[Tickets]
    WHERE [Date]>=@StartDate AND [Date]<=@EndDate
SET @Hour = @Hour + 1
END

INSERT INTO @tbl_Sales
SELECT 'TTL', sum([Amount]), sum([Tickets]), 0, 0 FROM @tbl_Sales

set @TotalSales = (SELECT [Amount] FROM @tbl_Sales WHERE [Hour]='TTL')

UPDATE @tbl_Sales SET
 [AvgTx] = (CASE WHEN [Tickets]=0 THEN 0 ELSE [Amount]/[Tickets] END)
,[Percent] = [Amount]/@TotalSales * 100

SELECT CASE
WHEN isnumeric([Hour])=1
THEN (CASE WHEN [Hour]<10 THEN '0'+[Hour]+':00' ELSE [Hour]+':00' END)
ELSE [Hour]
END as [Hour]
, [Amount], [Tickets], [AvgTx], [Percent]
FROM @tbl_Sales
3 Beğeni

dediğiniz gibi işlemleri yaptım ama raporda hata alıyorum neden olur

Copy pasta yaptiginiz SQL komutunda hafta var gibi gorunhyor.

Apastrof yerine kesme isaretleri kullandiginiza dikkat ein.

`    yanlis
'    dogru

Komutun en sonunda UC tane apastrof kullanulmis. Onlari silin ve tekrar deneyin

dediğiniz gibi denedim ama değişen bişey olmadı

Ozaman bir yerde hata yapiyorsunuz.
Komut ve Rapor sorunsuz calisiyor. (sadece komutun en sonundaki 3 apastrof u kaldirin ve deneyin)

1 Beğeni

Çalışıyor Teşekkürler. #TR nedir?

teşekkürler suan çalışıyor

Söz konusu olan zaman araligindaki Ticketlerin Toplam Sayisi (Kac ticket acilmis veya kullanilmis gibi)

1 Beğeni