Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Excel VBA - modyfikacja zapytania SQL

daro_p 16 Cze 2016 15:58 1062 6
  • #1 16 Cze 2016 15:58
    daro_p
    Poziom 17  

    Witam. Proszę o pomoc w małej modyfikacji zapytania SQL. Mam makro w Excelu do pobierania danych i w jednej linii jest fragment, który pobiera sumę sprzedaży produktów za dany okres. Problem w tym, że jest to zmienna użyta do obliczeń w zapytaniu i w przypadku zerowej sprzedaży wyskakuje błąd dzielenia przez zero. Próbowałem użyć funkcji CASE, tak aby w przypadku wartości mniejszej lub równej zero wpisywało do tabeli wartość '9999' i pomijało obliczenia, ale niestety cały czas mam jakieś błędy (albo składni, albo kluczy publicznych). Chodzi o sum(mqte) w podanym przykładzie. Jeżeli sum(mqte) zwróci wartość większą niż zero to kod działa super.Z góry dziękuję.

    "order by art_info_gene.crayon,(60*qstock_theorique)/ sum(mqte)) T1 " & _

    0 6
  • #2 16 Cze 2016 18:38
    marcinj12
    Poziom 40  

    Z jakiej bazy danych to pobierasz?

    0
  • #3 16 Cze 2016 20:14
    daro_p
    Poziom 17  

    W zapytaniu jest "Microsoft ODBC dla Oracle" - wiem, to jakaś starsza wersja Oracla

    0
  • #4 17 Cze 2016 10:17
    marcinj12
    Poziom 40  

    W Oraclu jest funkcja CASE, powinieneś móc ją do tego zaimplementować.
    Spróbuj coś w stylu:

    Kod: sql
    Zaloguj się, aby zobaczyć kod

    0
  • #5 17 Cze 2016 12:06
    daro_p
    Poziom 17  

    Dzieki, sprawdzę dokladnie tak jak piszesz. Ja robiłem podobnie i wychodził mi jakiś błąd z kluczem publicznym. Jutro przetestuje bo będę miał dostęp do bazy danych i dam znać czy działa.

    0
  • #6 18 Cze 2016 11:10
    daro_p
    Poziom 17  

    Zrobiłem według Twojej propozycji i wyskakuje mi podobny komunikat jak poprzednio.

    Teraz kod wygląda tak
    "order by CASE WHEN sum(mqte) = 0 THEN 9999 ELSE art_info_gene.crayon,(60*qstock_theorique)/ sum(mqte)) T1 END " & _
    Excel VBA - modyfikacja zapytania SQL

    0
  • #7 18 Cze 2016 14:53
    marcinj12
    Poziom 40  

    Dopiero teraz zauważyłem przecinek, że chcesz sortować po dwóch polach.
    To spróbuj tak:

    Kod: sql
    Zaloguj się, aby zobaczyć kod
    I tam NIE MA tego T1, celowo go nie dopisałem.

    0