• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Widok nie chce się wyświetlić

Object Storage Arubacloud
0 głosów
121 wizyt
pytanie zadane 31 maja 2018 w SQL, bazy danych przez Kamyyylo Początkujący (460 p.)

Mam taki problem że widok jaki napisałem nie chce się wyświetlić. Oto kod:

CREATE VIEW PRODUKTY AS

    SELECT

    PRODUCT_ID AS "ID PRODUKTU",

    PRODUCT_NAME AS "NAZWA PRODUKTU",

    PRICE_NET "CENA NETTO",

    (SELECT (PRICE_NET*TAX_VALUE+PRICE_NET)

            FROM PRODUCTS

            JOIN TAX USING (TAX_ID)) AS "CENA BRUTTO",

    AVAILABILITY AS "DOSTEPNOSC",

    (SELECT BUILDING_NAME FROM BUILDINGS) AS "NAZWA BUDYNKU",

    (SELECT ADDRESS FROM ADDRESSES) AS "ADRES"

    FROM PRODUCTS S

    JOIN TAX T

    ON  S.TAX_ID=T.TAX_ID

    JOIN BUILDINGS B

    ON S.BUILDING_ID=B.BUILDING_ID

    JOIN ADDRESSES A

    ON B.ADDRESS_ID=A.ADDRESS_ID;

Wyskakuje błąd:

ORA-01427: single-row subquery returns more than one row
01427. 00000 -  "single-row subquery returns more than one row"

Podejrzewam, że winny może być zagnieżdżony SELECT, w którym wykonuje operacje matematyczną ale nie wiem jak to poprawić.

1 odpowiedź

0 głosów
odpowiedź 11 września 2018 przez tylko_jedno_pytanie Użytkownik (580 p.)

Problemem jest to, że dla podzapytań generowanych jest więcej rekordów niż jeden. Np. Dla kolumny Cena brutto ,wyświetlanych jest tyle rekordów ile znajduje się w PRODUCTS JOIN TAX

Nie znając bazy ciężko mi powiedzieć jak dokładnie powinno to wyglądać . Wydaje mi się ,że niepotrzebnie kombinujesz ;) Poniżej przykład jak moim zdaniem mogłoby to wyglądać 


CREATE VIEW PRODUKTY AS
 
    SELECT
 
    S.PRODUCT_ID AS "ID PRODUKTU",
 
    S.PRODUCT_NAME AS "NAZWA PRODUKTU",
 
    S.PRICE_NET "CENA NETTO",
 
    S.PRICE_NET * T.TAX_VALUE + S.PRICE_NET AS "CENA BRUTTO",
 
    S.AVAILABILITY AS "DOSTEPNOSC",
 
    B.BUILDING_NAME AS "NAZWA BUDYNKU",
 
    A.ADDRESS AS "ADRES"
 
    FROM PRODUCTS S
 
    JOIN TAX T
 
    ON  S.TAX_ID=T.TAX_ID
 
    JOIN BUILDINGS B
 
    ON S.BUILDING_ID=B.BUILDING_ID
 
    JOIN ADDRESSES A
 
    ON B.ADDRESS_ID=A.ADDRESS_ID;

Daj znać czy o to Ci chodziło 

Jeśli chcesz ,żebym wyjaśnił, napisz priv :)

 

Podobne pytania

0 głosów
1 odpowiedź 154 wizyt
0 głosów
1 odpowiedź 978 wizyt
0 głosów
1 odpowiedź 212 wizyt
pytanie zadane 7 października 2018 w HTML i CSS przez Moras Obywatel (1,620 p.)

92,577 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...