• 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ć

Aruba Cloud - Virtual Private Server VPS
0 głosów
157 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ź 191 wizyt
0 głosów
1 odpowiedź 1,211 wizyt
0 głosów
1 odpowiedź 286 wizyt
pytanie zadane 7 października 2018 w HTML i CSS przez Moras Obywatel (1,620 p.)

93,324 zapytań

142,323 odpowiedzi

322,390 komentarzy

62,653 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...