Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 74518 Skopiuj do schowka PQ wykrywa dzielenie przez zero (tylko dzielenia brak)
Autor Wiadomość
buyakk 
Świeżak


Wersja: Mac Office 365
Posty: 2
Wysłany: 14-04-2023, 11:36   PQ wykrywa dzielenie przez zero (tylko dzielenia brak)

Cześć,
Dostałem w spadku raport, w którym PQ pobiera dane z bazy, scala kilka tabel i wypluwa wynik. Od dwóch dni zwraca błąd:
Cytat:

DataSource.Error: Microsoft SQL: Divide by zero error encountered.
Szczegóły:
DataSourceKind=SQL
DataSourcePath=glowny\mssql;CDNXL_PROD80
Message=Divide by zero error encountered.
ErrorCode=-2146232060
Number=8134
Class=16

Zacząłem szukać w kodzie, ogólnie nic nie wskazuje na to, by w którymkolwiek miejscu dochodziło do jakiegoś dzielenia (co sugeruje błąd). Doszedłem do tego, że w kroku 7 (rozwinięcie tabeli która została scalona w kroku 6) powoduje występienie tego błędu, ale za chiny ludowe nie rozumiem dlaczego.
Tu kod z edytora zaawansowanego tabeli po scaleniu ("#"Rozwinięty element CDN TraSElem (relizacja handl)" = Table.ExpandTableColumn(#"Scalone zapytania1", "CDN TraSElem (relizacja handl)", {"TrS_Ilosc"}, {"CDN TraSElem (relizacja handl).TrS_Ilosc"})" wydaje się wywoływać problem)

Kod:

    Źródło = Sql.Database("GLOWNY\MSSQL", "CDNXL_PROD80"),
    CDN_ZamElemListView = Źródło{[Schema="CDN",Item="ZamElemListView"]}[Data],
    #"Scalone zapytania" = Table.NestedJoin(CDN_ZamElemListView, {"ZaELV_GIDNumer"}, #"CDN ZamNag (poprawna data)", {"ZaN_GIDNumer"}, "CDN ZamNag", JoinKind.LeftOuter),
    #"Rozwinięty element CDN ZamNag" = Table.ExpandTableColumn(#"Scalone zapytania", "CDN ZamNag", {"Data_kalkulacyjna_POTW", "Data_kalkulacyjna_REAL", "Data_kalkulacyjna_WYST", "Kurs"}, {"CDN ZamNag.Data_kalkulacyjna_POTW", "CDN ZamNag.Data_kalkulacyjna_REAL", "CDN ZamNag.Data_kalkulacyjna_WYST", "CDN ZamNag.Kurs"}),
    #"Przefiltrowano wiersze" = Table.SelectRows(#"Rozwinięty element CDN ZamNag", each [CDN ZamNag.Data_kalkulacyjna_WYST] > #date(2020, 12, 31)),
    #"Scalone zapytania1" = Table.NestedJoin(#"Przefiltrowano wiersze", {"ZaELV_GIDNumer", "ZaELV_GIDTyp", "ZaELV_GIDLp"}, #"CDN TraSElem (relizacja handl)", {"trs_zlcnumer", "trs_zlctyp", "trs_zlclp"}, "CDN TraSElem (relizacja handl)", JoinKind.LeftOuter),
    #"Rozwinięty element CDN TraSElem (relizacja handl)" = Table.ExpandTableColumn(#"Scalone zapytania1", "CDN TraSElem (relizacja handl)", {"TrS_Ilosc"}, {"CDN TraSElem (relizacja handl).TrS_Ilosc"}),
    #"Usunięto kolumny" = Table.RemoveColumns(#"Rozwinięty element CDN TraSElem (relizacja handl)",{"ZaELV_GIDTyp", "ZaELV_GIDFirma", "ZaELV_GIDNumer", "ZaELV_GIDLp", "ZaELV_TwrNumer", "ZaELV_TwrTyp", "ZaELV_KntNazwa", "ZaELV_KntMiasto", "ZaELV_KnDAkronim", "ZaELV_KnDNazwa", "ZaELV_KnDMiasto", "ZaELV_DataWystawienia", "ZaELV_DataRealizacji", "ZaELV_DataWaznosci", "ZaELV_RodzajOferty", "ZaELV_MagDNumer", "ZaELV_MagDKod", "ZaELV_DokumentObcy", "ZaELV_Rabat", "ZaELV_KPNId", "ZaELV_ReETyp", "ZaELV_ZstTyp", "ZaELV_JmFormat", "ZaELV_PrecyzjaCeny", "ZaELV_TwrJMCalkowita", "ZaELV_KntNumer", "ZaELV_IloscDoRealizacji", "ZaELV_IloscZrealizowana", "ZaELV_IloscDoRealBezZasobu", "ZaELV_IloscZarezerwowana", "ZaELV_MagNumer", "ZaELV_TwrNazwa"}),
    #"Zmieniono nazwy kolumn" = Table.RenameColumns(#"Usunięto kolumny",{{"ZaELV_Dokument", "Order"}, {"ZaELV_TwrKod", "Index"}, {"ZaELV_KntAkronim", "Customer"}, {"ZaELV_Stan", "Status"}, {"ZaELV_MagKod", "Store"}, {"ZaELV_Ilosc", "Order Volume"}, {"ZaELV_CenaKoncowa", "Price"}, {"ZaELV_WartoscPoRabacie", "Order Value"}, {"CDN ZamNag.Data_kalkulacyjna_POTW", "Date of Delivery"}, {"CDN ZamNag.Data_kalkulacyjna_WYST", "Date of PO"}, {"CDN TraSElem (relizacja handl).TrS_Ilosc", "Done Volume"}}),
    #"Zmieniono kolejność kolumn" = Table.ReorderColumns(#"Zmieniono nazwy kolumn",{"Order", "Date of Delivery", "Date of PO", "Customer", "Store", "Status", "Order Value", "Index", "Order Volume", "Done Volume", "Price", "ZaELV_Waluta"}),
    #"Zamieniono wartość" = Table.ReplaceValue(#"Zmieniono kolejność kolumn",null,0,Replacer.ReplaceValue,{"Done Volume"}),
    #"Dodano kolumnę niestandardową" = Table.AddColumn(#"Zamieniono wartość", "Backlog PCS", each [Order Volume]-[Done Volume]),
    #"Zmieniono kolejność kolumn1" = Table.ReorderColumns(#"Dodano kolumnę niestandardową",{"Order", "Date of Delivery", "Date of PO", "Customer", "Store", "Status", "Order Value", "Index", "Order Volume", "Done Volume", "Backlog PCS", "Price", "ZaELV_Waluta"}),
    #"Dodano kolumnę niestandardową1" = Table.AddColumn(#"Zmieniono kolejność kolumn1", "Done Value", each [Done Volume]*[Price]),
    #"Zmieniono kolejność kolumn2" = Table.ReorderColumns(#"Dodano kolumnę niestandardową1",{"Order", "Date of Delivery", "Date of PO", "Customer", "Store", "Status", "Order Value", "Done Value", "Index", "Order Volume", "Done Volume", "Backlog PCS", "Price", "ZaELV_Waluta"}),
    #"Dodano kolumnę niestandardową2" = Table.AddColumn(#"Zmieniono kolejność kolumn2", "Backlog PLN", each [Backlog PCS]*[Price]),
    #"Zmieniono kolejność kolumn3" = Table.ReorderColumns(#"Dodano kolumnę niestandardową2",{"Order", "Date of Delivery", "Date of PO", "Customer", "Store", "Status", "Order Value", "Done Value", "Backlog PLN", "Index", "Order Volume", "Done Volume", "Backlog PCS", "Price", "ZaELV_Waluta"}),
    #"Dodano kolumnę niestandardową3" = Table.AddColumn(#"Zmieniono kolejność kolumn3", "Niestandardowe", each Text.Start([Order],2)),
    #"Zmieniono kolejność kolumn4" = Table.ReorderColumns(#"Dodano kolumnę niestandardową3",{"Niestandardowe", "Order", "Date of Delivery", "Date of PO", "Customer", "Store", "Status", "Order Value", "Done Value", "Backlog PLN", "Index", "Order Volume", "Done Volume", "Backlog PCS", "Price", "ZaELV_Waluta"}),
    #"Zmieniono nazwy kolumn1" = Table.RenameColumns(#"Zmieniono kolejność kolumn4",{{"Niestandardowe", "Order Type"}, {"CDN ZamNag.Kurs", "Kurs"}}),
    #"Zmieniono typ1" = Table.TransformColumnTypes(#"Zmieniono nazwy kolumn1",{{"Kurs", type number}}),
    #"Przefiltrowano wiersze1" = Table.SelectRows(#"Zmieniono typ1", each ([Order Type] = "ZS")),
    #"Dodano kolumnę niestandardową4" = Table.AddColumn(#"Przefiltrowano wiersze1", "Backlog-NET", each [Backlog PLN]-([Backlog PLN]*0.09)),
    #"Zmieniono kolejność kolumn5" = Table.ReorderColumns(#"Dodano kolumnę niestandardową4",{"Order Type", "Order", "Date of Delivery", "Date of PO", "Customer", "Store", "Status", "Order Value", "Done Value", "Backlog PLN", "Backlog-NET", "Index", "Order Volume", "Done Volume", "Backlog PCS", "Price", "ZaELV_Waluta"}),
    #"Zmieniono typ" = Table.TransformColumnTypes(#"Zmieniono kolejność kolumn5",{{"Done Value", type number}, {"Backlog PLN", type number}, {"Backlog-NET", type number}, {"Backlog PCS", type number}}),
    #"Zmieniono kolejność kolumn6" = Table.ReorderColumns(#"Zmieniono typ",{"Order Type", "Order", "Date of Delivery", "Date of PO", "Customer", "Store", "Status", "Order Value", "Done Value", "Backlog PLN", "Backlog-NET", "Index", "Order Volume", "Done Volume", "Backlog PCS", "Price", "Kurs", "ZaELV_Waluta"}),
    #"Zmieniono nazwy kolumn2" = Table.RenameColumns(#"Zmieniono kolejność kolumn6",{{"ZaELV_Waluta", "Currency"}, {"Kurs", "Exchange rate"}}),
    #"Dodano kolumnę niestandardową5" = Table.AddColumn(#"Zmieniono nazwy kolumn2", "Niestandardowe", each [Order Value]*[Exchange rate]),
    #"Dodano kolumnę niestandardową6" = Table.AddColumn(#"Dodano kolumnę niestandardową5", "Niestandardowe.1", each [Done Value]*[Exchange rate]),
    #"Dodano kolumnę niestandardową7" = Table.AddColumn(#"Dodano kolumnę niestandardową6", "Niestandardowe.2", each [Backlog PLN]*[Exchange rate]),
    #"Dodano kolumnę niestandardową8" = Table.AddColumn(#"Dodano kolumnę niestandardową7", "Niestandardowe.3", each [#"Backlog-NET"]*[Exchange rate]),
    #"Zmieniono nazwy kolumn3" = Table.RenameColumns(#"Dodano kolumnę niestandardową8",{{"Niestandardowe", "OrderValue"}, {"Niestandardowe.1", "DoneValue"}, {"Niestandardowe.2", "BacklogPLN"}, {"Niestandardowe.3", "BacklogNET"}}),
    #"Zmieniono typ2" = Table.TransformColumnTypes(#"Zmieniono nazwy kolumn3",{{"OrderValue", Currency.Type}, {"DoneValue", Currency.Type}, {"BacklogPLN", Currency.Type}, {"BacklogNET", Currency.Type}, {"Price", Currency.Type}}),
    #"Usunięto kolumny1" = Table.RemoveColumns(#"Zmieniono typ2",{"Order Value", "Done Value", "Backlog PLN", "Backlog-NET"}),
    #"Zmieniono kolejność kolumn7" = Table.ReorderColumns(#"Usunięto kolumny1",{"Order Type", "Order", "Date of Delivery", "Date of PO", "Customer", "Store", "Status", "OrderValue", "DoneValue", "BacklogPLN", "BacklogNET", "Index", "Order Volume", "Done Volume", "Backlog PCS", "Price", "Exchange rate", "Currency"}),
    #"Usunięto kolumny2" = Table.RemoveColumns(#"Zmieniono kolejność kolumn7",{"Exchange rate", "Currency"}),
    #"Zmieniono nazwy kolumn4" = Table.RenameColumns(#"Usunięto kolumny2",{{"OrderValue", "Order Value"}, {"DoneValue", "Done Value"}, {"BacklogPLN", "Backlog PLN"}, {"BacklogNET", "Backlog-NET"}}),
    #"Usunięto kolumny3" = Table.RemoveColumns(#"Zmieniono nazwy kolumn4",{"Order Type"}),
    #"Zmieniono kolejność kolumn8" = Table.ReorderColumns(#"Usunięto kolumny3",{"Order", "Date of PO", "Date of Delivery", "Customer", "Store", "Status", "Order Value", "Done Value", "Backlog PLN", "Backlog-NET", "Index", "Order Volume", "Done Volume", "Backlog PCS", "Price"}),
    #"Dodano kolumnę warunkową" = Table.AddColumn(#"Zmieniono kolejność kolumn8", "IN\OUT", each if [Status] = "Zamknięte potwierdzone" then "OUT" else if [Status] = "Potwierdzone" then "IN" else if [Status] = "Zrealizowane" then "DONE" else if [Status] = "Zamknięte w realizacji" then "DONE" else if [Status] = "W realizacji" then "IN" else if [Status] = "Anulowane" then "OUT" else if [Status] = "Niepotwierdzone" then "BUFFER" else if [Status] = "Anulowane potwierdzone" then "OUT" else if [Date of Delivery] = #date(1800, 12, 28) then "BUFFER" else null),
    #"Zmieniono kolejność kolumn9" = Table.ReorderColumns(#"Dodano kolumnę warunkową",{"Order", "Date of PO", "Date of Delivery", "Customer", "Store", "Status", "IN\OUT", "Order Value", "Done Value", "Backlog PLN", "Backlog-NET", "Index", "Order Volume", "Done Volume", "Backlog PCS", "Price"}),
    #"Scalone zapytania2" = Table.NestedJoin(#"Zmieniono kolejność kolumn9", {"Index"}, mapa_zapasy, {"Content.ITEM"}, "mapa_zapasy", JoinKind.LeftOuter),
    #"Rozwinięty element mapa_zapasy" = Table.ExpandTableColumn(#"Scalone zapytania2", "mapa_zapasy", {"Content.GROUP"}, {"mapa_zapasy.Content.GROUP"}),
    #"Zmieniono nazwy kolumn5" = Table.RenameColumns(#"Rozwinięty element mapa_zapasy",{{"mapa_zapasy.Content.GROUP", "Group"}}),
    #"Dodano kolumnę warunkową1" = Table.AddColumn(#"Zmieniono nazwy kolumn5", "Niestandardowe", each if [Date of Delivery] = #date(1800, 12, 28) then [Date of PO] else [Date of Delivery]),
    #"Zmieniono kolejność kolumn10" = Table.ReorderColumns(#"Dodano kolumnę warunkową1",{"Order", "Date of PO", "Customer", "Store", "Status", "IN\OUT", "Order Value", "Done Value", "Backlog PLN", "Backlog-NET", "Index", "Order Volume", "Done Volume", "Backlog PCS", "Price", "Group", "Niestandardowe", "Date of Delivery"}),
    #"Zmieniono nazwy kolumn6" = Table.RenameColumns(#"Zmieniono kolejność kolumn10",{{"Date of Delivery", "delete_Date of Delivery"}, {"Niestandardowe", "Date of Delivery"}}),
    #"Zmieniono typ3" = Table.TransformColumnTypes(#"Zmieniono nazwy kolumn6",{{"Date of Delivery", type date}}),
    #"Zmieniono kolejność kolumn11" = Table.ReorderColumns(#"Zmieniono typ3",{"Order", "Date of PO", "Date of Delivery", "Customer", "Store", "Status", "IN\OUT", "Order Value", "Done Value", "Backlog PLN", "Backlog-NET", "Index", "Order Volume", "Done Volume", "Backlog PCS", "Price", "Group", "delete_Date of Delivery"}),
    #"Usunięto kolumny4" = Table.RemoveColumns(#"Zmieniono kolejność kolumn11",{"delete_Date of Delivery"}),
    #"Zmieniono nazwy kolumn7" = Table.RenameColumns(#"Usunięto kolumny4",{{"Date of Delivery", "Date of Delivery@"}, {"CDN ZamNag.Data_kalkulacyjna_REAL", "Date of Delivery"}}),
    #"Zmieniono kolejność kolumn12" = Table.ReorderColumns(#"Zmieniono nazwy kolumn7",{"Order", "Date of PO", "Date of Delivery", "Date of Delivery@", "Customer", "Store", "Status", "IN\OUT", "Order Value", "Done Value", "Backlog PLN", "Backlog-NET", "Index", "Order Volume", "Done Volume", "Backlog PCS", "Price", "Group"}),
    #"Zmieniono nazwy kolumn8" = Table.RenameColumns(#"Zmieniono kolejność kolumn12",{{"Date of Delivery@", "Date of Confirmation"}}),
    #"Scalone zapytania3" = Table.NestedJoin(#"Zmieniono nazwy kolumn8", {"Customer"}, Zapytanie1, {"Content.[konrah.] AKRONIM"}, "Zapytanie1", JoinKind.LeftOuter),
    #"Rozwinięty element Zapytanie1" = Table.ExpandTableColumn(#"Scalone zapytania3", "Zapytanie1", {"Content.Region 1", "Content.Region 2"}, {"Zapytanie1.Content.Region 1", "Zapytanie1.Content.Region 2"}),
    #"Zmieniono nazwy kolumn9" = Table.RenameColumns(#"Rozwinięty element Zapytanie1",{{"Zapytanie1.Content.Region 1", "Region 1"}, {"Zapytanie1.Content.Region 2", "Region 2"}}),
    #"Zduplikowano kolumnę" = Table.DuplicateColumn(#"Zmieniono nazwy kolumn9", "Date of PO", "Date of PO — kopia"),
    #"Zduplikowano kolumnę1" = Table.DuplicateColumn(#"Zduplikowano kolumnę", "Date of Delivery", "Date of Delivery — kopia"),
    #"Zmieniono nazwy kolumn10" = Table.RenameColumns(#"Zduplikowano kolumnę1",{{"Date of PO — kopia", "Date of PO [Year]"}, {"Date of Delivery — kopia", "Date of Delivery [Year]"}}),
    #"Zduplikowano kolumnę2" = Table.DuplicateColumn(#"Zmieniono nazwy kolumn10", "Date of PO [Year]", "Date of PO [Year] — kopia"),
    #"Zmieniono nazwy kolumn11" = Table.RenameColumns(#"Zduplikowano kolumnę2",{{"Date of PO [Year] — kopia", "Date of PO [Month]"}}),
    #"Zduplikowano kolumnę3" = Table.DuplicateColumn(#"Zmieniono nazwy kolumn11", "Date of Delivery [Year]", "Date of Delivery [Year] — kopia"),
    #"Zmieniono nazwy kolumn12" = Table.RenameColumns(#"Zduplikowano kolumnę3",{{"Date of Delivery [Year] — kopia", "Date of Delivery [Month]"}}),
    #"Wyodrębniony rok" = Table.TransformColumns(#"Zmieniono nazwy kolumn12",{{"Date of PO [Year]", Date.Year, Int64.Type}, {"Date of Delivery [Year]", Date.Year, Int64.Type}}),
    #"Wyodrębniony miesiąc" = Table.TransformColumns(#"Wyodrębniony rok",{{"Date of PO [Month]", Date.Month, Int64.Type}, {"Date of Delivery [Month]", Date.Month, Int64.Type}})
    #"Wyodrębniony miesiąc"


oraz kod tabeli która była doklejana
Kod:

   Źródło = Sql.Database("GLOWNY\MSSQL", "CDNXL_PROD80", [Query="SELECT TRS.trs_zlcnumer, TRS.trs_zlctyp,TRS.trs_zlclp,sum(trs.TrS_Ilosc) as TrS_Ilosc from CDN.TraSElem TRS #(lf)    WHERE TrS_GIDTyp NOT IN (1824,1828,1832,1836) AND trs_subgidlp > 0 group by TRS.trs_zlcnumer, TRS.trs_zlctyp,TRS.trs_zlclp"])


Może ktoś ma pomysł jak poradzić sobie z tym?
ID posta: 427365 Skopiuj do schowka
 
 
DwaNiedźwiedzie 
Excel Expert



Wersja: Win Office 2016
Pomógł: 327 razy
Posty: 812
Wysłany: 14-04-2023, 19:43   

Wydaje mi się, że to raczej nie zaprezentowany powyżej kod sam w sobie powoduje błąd, tylko występuje on gdzieś w danych ściąganych z bazy MSSQL. Przejrzyj dokładnie wszystkie trzy (o ile dobrze liczę) zapytania do serwera i tam poszukaj problemu. Uważaj tylko, bo czasem wrogi element występuje gdzieś na tyle daleko, że PQ jest w stanie wyświetlić początkową część danych i zapytanie może pozornie wydawać się ok. Na początek spróbuj wrzucić je do funkcji Table.SelectRowsWithErrors (tylko z pierwszym argumentem, bez wskazywania konkretnych kolumn) i zobacz, czy czegoś nie zwróci.
ID posta: 427384 Skopiuj do schowka
 
 
buyakk 
Świeżak


Wersja: Mac Office 365
Posty: 2
Wysłany: 17-04-2023, 10:39   

Sprawdziłem wszystkie tabele za pomocą funkcji Table.SelectRowsWithErrors, wskazała źródło błędu w scalanej tabeli, już zabezpieczyłem się na przyszłość.
Dzięki za pomoc.
ID posta: 427436 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.wip.pl

Archiwum

Strona uĹźywa plikĂłw cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przegl�darce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
SprawdĹş, w jaki sposĂłb przetwarzamy dane osobowe