Zadania MS SQL

0

Witam,

Mogę prosić o pomoc w rozwiązaniu ?

Tabele jakich należy użyć w zapytaniu:
- dbo.ZAMOWIENIE
- dbo.ZAMOWIENIE_POZYCJE

Zadanie:
Napisz zapytanie, które zwróci dwie informacje:
- numer zamówienia;
- informacje czy wartość danego zamówienia jest większa/równa (1) czy mniejsza (0) od średniej wartości zamówienia.

Podpowiedź: Trzeba wyznaczyć jaka jest średnia wartość zamówienia na jaką kontrahenci zamawiają towary.

Przykładowe wyniki:
NUMER	       SR
ZAM/1/13		0
ZAM/10/13		0
ZAM/100/13	1
ZAM/11/13		0
ZAM/12/13		0
ZAM/13/13		0
ZAM/14/13		1
ZAM/15/13		0
ZAM/16/13		0
...
0
  1. Piszesz o pomocy, oczekujesz gotowca?
  2. Piszesz na forum do konkretnej osoby?
0

@hipekk chciałbym prosić o rozwiązanie

0

Wartość jak ma być obliczana ?

0

@biały Orzeł może być za pomocą podzapytania lub JOIN

0

Tak, ale liczy się je w sposób cena/ilość ?

0

@biały Orzeł tak cena

0

Obliczenie średniej wartości zamówienia (na podstawie bazy Adventureworks) masz tutaj:
http://anonco.pl/adventureworks-examples-e1-sql-group-by-groupby-sum-avg/

reszta nie jest już taka trudna :)

0

Żeby za każdym razem nie wykonywało się zapytanie obliczające średnią zamówień to możemy wrzucić to zapytanie do zmiennej i później wykorzystać tą zmienną w zapytaniu głównym. Link poniżej:
http://anonco.pl/adventureworks-examples-e3-sql-group-by-groupby-sum-avg-local-variable/

0

@KiK a z tym zadaniem pomożesz?

Tabele jakich należy użyć w zapytaniu:
- dbo.KONTRAHENT
- dbo.ZAMOWIENIE

Zadanie:
Napisz zapytanie, które zwróci dwie informacje:
- ilości kontrahentów, którzy złożyli choć jedno zamówienie;
- ilość kontrahentów, którzy nie złożyli zamówienia.

Przykładowe wyniki:
KONTRAHENCI Z ZAM		KONTRAHNECI BEZ ZAM
16
0
SELECT Count(distinct kontrahent_id) FROM zamowienie
SELECT Count(k.id) FROM kontrahenci k LEFT JOIN zamowienie z ON k.id=z.kontrahent_id WHERE z.kontrahent_id IS NULL
0

@Marcin.Miga w drugim skrypcie pojawia się błąd "Invalid column name 'id'
Jak w pierwszym dodać nazwę tabeli żeby nazywała się KONTRAHENCI Z ZAM dodaje AS KONTRAHENCI Z ZAM ale nazwa się nie dodaje.
W tym zadaniu muszą zostać zwrócone dwie kolumny KONTRAHENCI Z ZAM i KONTRAHENCI BEZ ZAM czyli trzeba połączyć te skrypty jakoś.

0

SELECT COUNT(DISTINCT kontrahent_id) AS KONTRAHENCI_Z_ZAM
FROM zamowienie

SELECT COUNT(*) AS KONTRAHENCI_BEZ_ZAM
FROM KONTRAHENT k
LEFT JOIN zamowienie z ON k.KONTRAHENT_ID=z.kontrahent_id
WHERE z.kontrahent_id IS NULL

jak połączyć te skrypty żeby po zazanczeniu całości wyświetliły się 2 kolumny obok siebie ?

2
Początkujący123 napisał(a):

SELECT COUNT(DISTINCT kontrahent_id) AS KONTRAHENCI_Z_ZAM
FROM zamowienie

SELECT COUNT(*) AS KONTRAHENCI_BEZ_ZAM
FROM KONTRAHENT k
LEFT JOIN zamowienie z ON k.KONTRAHENT_ID=z.kontrahent_id
WHERE z.kontrahent_id IS NULL

jak połączyć te skrypty żeby po zazanczeniu całości wyświetliły się 2 kolumny obok siebie ?

select (SELECT COUNT(DISTINCT kontrahent_id) FROM zamowienie) "KONTRAHENCI Z ZAM" , 
       (SELECT COUNT(*) FROM KONTRAHENT k LEFT JOIN zamowienie z ON k.KONTRAHENT_ID=z.kontrahent_id WHERE z.kontrahent_id IS NULL) "KONTRAHENCI BEZ ZAM"
0

Ilość kontrahentów (w tym przypadku klientów, bo przykład jest na bazie Northwind) którzy nie złożyli żadnego zamówienia masz tutaj:
http://anonco.pl/northwind-examples-sql-count-left-join-is-null-isnull-aw32/

0

Sorki zapomniałem, że to ma być w jednym zapytaniu (przykład także na bazie Northwind). Link tutaj:
http://anonco.pl/northwind-examples-sql-count-left-join-is-null-isnull-aw33/

1 użytkowników online, w tym zalogowanych: 0, gości: 1