Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z widokiem błędy ora-00904 oraz ora-02063
Kubczyk85
post 28.08.2012, 10:32:12
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 3.04.2012

Ostrzeżenie: (0%)
-----


Witam

Muszę policzyć odchylenie wagi danego produktu od średniej wagi dla grupy produktów do której ten produkt należy.
W tym celu utworzyłem widok, w którym w pierwszym kropu grupuję produkt po nazwa prod, format, technologia oraz jm - robie to ponieważ ten sam produkt powtarza się wielokrotnie, a w widoku chcę policzyć średnią dla grupy do której ten należy.W kolejnym etapie grupuję po format, technologia i j/m (czyli po grupie do jakiej należy dany produkt), podliczam ile razy dana grupa się pojawiła oraz średnią wagę.

  1. CREATE OR REPLACE VIEW srednia_waga_poz AS
  2. SELECT
  3. count(*) liczba_wyst,
  4. a.format format,
  5. a.technologia technologia,
  6. a.jm,
  7. MAX(a.waga) max_waga,
  8. MIN(a.waga) min_waga,
  9. sum(a.waga)/count(*) srednia_waga
  10.  
  11. FROM
  12. (
  13. SELECT
  14. ip.format,
  15. ip.technologia,
  16. ip.nazwa_prod,
  17. ip.jm,
  18. ip.waga
  19.  
  20. FROM Inventory_Part ip
  21. WHERE
  22. ip.waga<> 0
  23. AND ip.waga IS NOT NULL
  24.  
  25. GROUP BY
  26. ip.format,
  27. ip.technologia,
  28. ip.nazwa_prod,
  29. ip.jm,
  30. ip.waga
  31.  
  32. ) a
  33. GROUP BY
  34. a.format,
  35. a.technologia,
  36. a.jm
  37. WITH READ ONLY


W drugim zapytaniu chce wyliczyć odchylenie od średniej wagi oraz o ile procent.

  1. SELECT
  2. b.nazwa_prod,
  3. b.format,
  4. b.technologia,
  5. b.jm,
  6. swp.liczba_wyst,
  7. b.waga,
  8. swp.srednia,
  9.  
  10. b.waga - swp.srednia_waga odch_waga,
  11. round(ABS((b.waga - swp.srednia_waga )) * 100 / swp.srednia_waga ,1) procent_waga
  12.  
  13. FROM (SELECT ip.nazwa_prod,
  14. ip.waga,
  15. ip.format,
  16. ip.technologia,
  17. ip.jm
  18.  
  19. FROM Inventory_Part ip
  20. WHERE
  21. ip.waga<> 0
  22. AND ip.waga IS NOT NULL
  23. GROUP BY ip.nazwa_prod,
  24. ip.waga,
  25. ip.format,
  26. ip.technologia,
  27. ip.jm) b,
  28. SREDNIA_WAGA_POZ swp
  29. WHERE swp.FORMAT = b.format
  30. AND swp.TECHNOLOGIA = b.technologia
  31. AND swp.jm = b.jm
  32. AND swp.LICZBA_WYST > 10
  33.  


Niestety wyskakują mi dwa błędy:
ora-00904 - "A1"."WAGA": invalid identifier - czasem jest to "A6","A12" oraz
ora-02063 - proceding line from BAZA

Również kiedy próbuję zrobić zwykłe złączenie:
  1. SELECT ip.*, sw.* FROM Inventory_Part ip, Srednia_Waga_Poz sw
  2. WHERE ip.format = sw.format
  3. AND ip.technologia = sw.technologia
  4. AND ip.jm = sw.jm


pojawiają się te same błędy. Zauważyłem, że jest to wina grupowania w widoku po:
ip.nazwa_prod,
ip.waga,
ip.format,
ip.technologia,
ip.jm

bez tego błędy się nie pojawiają. Nie wiem w czym tkwi problem i nie mam pomysłu jak można to wykonać inaczej.
Proszę o jakąkolwiek pomoc
Go to the top of the page
+Quote Post
bww
post 29.08.2012, 16:02:56
Post #2





Grupa: Zarejestrowani
Postów: 42
Pomógł: 3
Dołączył: 14.02.2012

Ostrzeżenie: (0%)
-----


Z tego co napisałeś nie wynika, że korzystasz z dblink-a, a błąd ora-02063 to sugeruje: http://ora-02063.ora-code.com/
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.04.2024 - 07:46