Dołącze się do tematu.
W związku z tym, że mamy pana w kontrolingu który bez raportów, excela i tabel przestawnych nie potrafi funkcjonować i jest to dla niego całe żecie
), przedstawiam alerantywne rozwiązanie analizy rentowności klienta w postaci widoku który możemy sobie podłączyć do excela w formie tabel przestawnych. Może komuś się przyda, być może w waszych firmach rónież analizujecie dane w tabelach przestawnych
Kod: Zaznacz cały
USE [twoja_baza]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [CDN].[SprzedazAnaliza]
AS
SELECT
IsNull(Twr_Kod,'A-Vista') AS Towar_Kod,
IsNull(Twr_Nazwa,'A-Vista') AS Towar_Nazwa,
TrE_JmZ As Towar_JmSpr,
Twr_Katalog As Towar_Symbol,
Twr_EAN As Towar_EAN,
CASE WHEN Twr_Typ=1 THEN 'Towar'
WHEN Twr_Typ=2 THEN 'Produkt'
WHEN Twr_Typ=3 THEN 'Koszt'
WHEN Twr_Typ=5 THEN 'Kaucje'
ELSE 'Usluga' END
AS Towar_TypTowaruNazwa,
Twr_Typ As Towar_TypTowaruNumer,
TrE_TwrNazwa AS Towar_NazwaZPozycji,
Twr_Archiwalny AS Towar_CzyArch01,
CASE WHEN Twr_Archiwalny=1 THEN 'Archiwalny' ELSE 'Aktywny' END AS Towar_CzyArchiwalny,
IsNull((SELECT Knt_Akronim FROM cdn.KntKarty WHERE Knt_GidTyp=Twr_PrdTyp AND Knt_GidNumer=Twr_PrdNumer),'Inny')
AS Towar_Producent,
IsNull((SELECT Knt_Nazwa1 FROM cdn.KntKarty WHERE Knt_GidTyp=Twr_PrdTyp AND Knt_GidNumer=Twr_PrdNumer),'Inny')
AS Towar_ProducentNazwa,
'Sprzedaż' AS Dokument_TypObrotu,
CDN.FrmPelnaStruktura (TrN_FRSId) as Dokument_Wlasciciel,
OB_Skrot AS Dokument_TypDokumentu,
OB_Nazwa AS Dokument_NazwaDokumentu,
TrN_TrNSeria AS Dokument_Seria,
(SELECT cdn.NumerDokumentuTRN(Trn_GidTyp, Trn_SpiTyp, TrN_TrnTyp, TrN_TrNNumer, TrN_TrNRok, TrN_TrNSeria))
As Dokument_Numer,
IsNull((SELECT (SELECT [CDN].[NumerDokumentu]((CDN.DokMapTypDokumentu (ZaN_GIDTyp, ZaN_ZamTyp, ZaN_Rodzaj)), Zan_GidTyp, Zan_GidTyp, ZaN_ZamNumer, ZaN_ZamRok, ZaN_ZamSeria, 1)) FROM cdn.ZamNag WHERE ZaN_GIDTyp=TrN_ZaNTyp AND ZaN_GIDNumer=TrN_ZaNNumer),'Brak')
AS Dokument_NumerZamowienia,
IsNull((SELECT Ope_Ident FROM cdn.OpeKarty WHERE Ope_GidTyp=TrN_OpeTypW AND Ope_GidNumer=TrN_OpeNumerW),'Brak')
AS Dokument_OperatorWystawiajacy,
IsNull((SELECT '(' + Prc_Akronim +')' + Prc_Nazwisko FROM cdn.PrcKarty WHERE Prc_GidTyp=TraNag.TrN_AkwTyp AND Prc_GidNumer=TraNag.TrN_AkwNumer),'Brak')
AS Akwizytor_Dokument,
IsNull((SELECT '(' + Prc_Akronim +')' + Prc_Nazwisko FROM cdn.PrcKarty WHERE Prc_GidTyp=KntKarty.Knt_AkwTyp AND Prc_GidNumer=KntKarty.Knt_AkwNumer),'Brak')
AS Akwizytor_Karta,
IsNull((SELECT '(' + Prc_Akronim +')' + Prc_Nazwisko FROM cdn.PrcKarty WHERE Prc_GidTyp=TraNag.TrN_OpiTyp AND Prc_GidNumer=TraNag.TrN_OpiNumer),'Brak')
AS Opiekun_Dokument,
IsNull((SELECT '(' + Prc_Akronim +')' + Prc_Nazwisko FROM cdn.PrcKarty WHERE Prc_GidTyp=KntKarty.Knt_PrcTyp AND Prc_GidNumer=KntKarty.Knt_PrcNumer),'Brak')
AS Opiekun_Karta,
KntKarty.Knt_Akronim AS Klient_Akronim,
KntKarty.Knt_Nazwa1 AS Klient_Nazwa,
KntKarty.Knt_Miasto AS Klient_Miasto,
KntKarty.Knt_Kraj AS Klient_Kraj,
KntKarty.Knt_Wojewodztwo AS Klient_Wojewodztwo,
KntD.Knt_Akronim AS Klinet_DocelowyAkronim,
KntD.Knt_Nazwa1 AS Klient_DocelowyNazwa,
KntD.Knt_Miasto AS Klient_DocelowyMiasto,
AdW.KnA_Akronim AS Klient_WysylkowyAkronim,
AdW.KnA_Nazwa1 AS Klient_WysylkowyNazwa,
AdW.KnA_Miasto AS Klient_WysylkowyMiasto,
AdW.KnA_Miasto + ', ' + AdW.KnA_Ulica + ', ' + AdW.KnA_Adres AS Klient_WysylkowyAdres,
Year(convert(datetime,TrN_Data3-36163,105))AS Data_Rok,
DatePart(quarter,(convert(datetime,TrN_Data3-36163,105))) AS Data_Kwartal,
Month(convert(datetime,TrN_Data3-36163,105))AS Data_Miesiac,
DatePart(week,(convert(datetime,TrN_Data3-36163,105)))-1 AS Data_TydzienRoku,
DatePart(weekday,(convert(datetime,TrN_Data3-36163,105))) AS Data_DzienTyg,
convert(datetime,TrN_Data3-36163,105) Data_DataZakSpr,
TrS_Ilosc AS Ilosc,
TrE_UpustKnt As UpustKlienta,
TrE_Rabat As Rabat,
TrE_Poczatkowa AS CenaPrzedRabatem,
round(TrE_Poczatkowa * (TrE_KursL/TrE_KursM),4) AS CenaPrzedRabatemPLN,
TrE_Cena AS CenaPoRabacie,
round(TrE_Cena * (TrE_KursL/TrE_KursM),4) AS CenaPoRabaciePLN,
TrE_KsiegowaNetto As PozycjaNetto,
TrE_KsiegowaBrutto As PozycjaBrutto
FROM cdn.TraNag TraNag
INNER JOIN cdn.Obiekty
ON (TrN_GidTyp=Ob_GidTyp)
INNER JOIN cdn.TraElem TraElem
ON (TraNag.TrN_GIDTyp = TraElem.TrE_GIDTyp
AND TraNag.TrN_GIDNumer = TraElem.TrE_GIDNumer)
INNER JOIN CDN.KntKarty KntKarty
ON (TraNag.TrN_KntTyp=KntKarty.Knt_GIDTyp
AND TraNag.TrN_KntNumer=KntKarty.Knt_GIDNumer)
left outer join cdn.twrkarty
ON (TraElem.TrE_TwrTyp = TwrKarty.Twr_GIDTyp
AND TraElem.TrE_TwrNumer = TwrKarty.Twr_GIDNumer
AND TraElem.TrE_TwrLP = TwrKarty.Twr_GIDLP)
LEFT OUTER JOIN CDN.KntKarty KntD
ON (TraNag.TrN_KnDTyp=KntD.Knt_GIDTyp
AND TraNag.TrN_KnDNumer=KntD.Knt_GIDNumer)
LEFT OUTER JOIN CDN.KntAdresy AdW
ON (TraNag.TrN_AdWTyp=AdW.KnA_GIDTyp
AND TraNag.TrN_AdWNumer=AdW.KnA_GIDNumer)
LEFT OUTER JOIN CDN.TraSElem TraSElem
ON (TraElem.TrE_GIDTyp = TraSElem.TrS_GIDTyp
AND TraElem.TrE_GIDNumer = TraSElem.TrS_GIDNumer
AND TraElem.TrE_GIDLP = TraSElem.TrS_GIDLP)
WHERE (TrN_GidTyp in (2001,2003,2005,2009,2013,2033,2034,2036,2037,2041,2042,2044,2045)) and Trn_KntTyp<>0-- and (TrE_Cena*TrS_Ilosc<>0 OR TrS_KosztKsiegowy<>0 OR TrE_KsiegowaNetto<>0)