Zadanie (pytanie) polegało na ułożeniu zapytania z dostępnego do wyboru kodu. Zapytanie miało zwracać zwierzątka właścicieli, którzy mieszkają w Seatlle i mają powyżej 50-tki (dokładny opis na obrazku poniżej).
Niestety z dostępnego kodu nie dało się napisać zapytania. Zaciekawiło mnie więc jaka jest odpowiedź. Napisałem więc błędny kod i poprosiłem o sprawdzenie i wyświetlenie odpowiedzi. Oto co otrzymałem :
Jak można zauważyć poprawna odpowiedź jest błędna. W podzapytaniu nie ma kolumny OWNERNAME, po której następuje JOIN.
Poniżej dowód :
USE TEMPDB; DECLARE @PETS AS TABLE ( PETNAME VARCHAR(20), OWNERNAME VARCHAR(20) ); DECLARE @OWNERS AS TABLE ( OWNERNAME VARCHAR(20), AGE TINYINT, LOCATION VARCHAR(20) ); INSERT INTO @PETS (PETNAME, OWNERNAME) VALUES ('REX', 'BOB') , ('PIMPEK', 'ALA') , ('ŚLINIAK', 'OLA'); INSERT INTO @OWNERS (OWNERNAME, AGE, LOCATION) VALUES ('BOB', 55, 'SEATTLE') , ('ALA', 10, 'WARSZAWA') , ('OLA', 12, 'SZCZECIN'); SELECT PET.PETNAME FROM @PETS AS PET JOIN (SELECT AGE FROM @OWNERS WHERE LOCATION = 'SEATTLE') AS OWN ON PET.OWNERNAME = OWN.OWNERNAME WHERE OWN.AGE > 50
Jak można się domyślić zapytanie zwraca błąd :
Prawidłowe zapytanie powinno wyglądać tak :
SELECT PET.PETNAME FROM @PETS AS PET JOIN (SELECT OWNERNAME, AGE FROM @OWNERS WHERE LOCATION = 'SEATTLE') AS OWN ON PET.OWNERNAME = OWN.OWNERNAME WHERE OWN.AGE > 50
Ciekawy jestem czy Wy też trafiliście na przypadki błędnych odpowiedzi do testów dołączonych to książek przygotowujących do egzaminu.
To się w książkach Microsoft Press zdarza. Nie potrafię w tej chwili podać konkretnego przykładu, ale pamiętam, że kiedyś też trafiłem na coś, co wyglądało na ewidentny błąd. Szukając w Internecie potwierdzenia, trafiłem na stronę z erratami do książek tego wydawnictwa.
OdpowiedzUsuńErrata do 'MCTS Self-Paced Training Kit (Exam 70-433): Microsoft SQL Server 2008 - Database Development'
Dzięki Mareku. Jak widać na stronce, do której linka podałeś, błędów było więcej. Muszę zacząć uważniej czytać te książki ;)
OdpowiedzUsuńZdarza się i to bardzo często. W książce i pytaniach do 70-536 było kilkaset błędów - errata na stronach MS miała ok 300-400 pozycji, a i tak sporo było pominiętych.
OdpowiedzUsuńWitać, że zjawisko jest powszechne i niestety niepokojące.
OdpowiedzUsuń