nýliði Alert - Hjálp í Microsoft SQL Server management studio


starionturbo
Gúrú
Póstar: 542
Skráði sig: Mán 24. Des 2007 11:23
Reputation: 8
Staðsetning: localhost
Staða: Ótengdur

Re: nýliði Alert - Hjálp í Microsoft SQL Server management studi

Pósturaf starionturbo » Mið 10. Mar 2010 08:34

Hvernig datt þér í hug að byrja á MSSQL, fyrir það fyrsta þá er documentation algjört crap og í öðru lagi er það viðbjóður hehe.

En þetta ætti að virka eins og í MySQL

Kóði: Velja allt

Select Ferd.afangastadur, Medlimur.kennitala, Bokun.bokadurFjoldi
FROM Ferd, Medlimur, Bokun
WHERE Ferd.tegundFerdar = Bokun.bokunarnumer


Nei bíddu það er eitthvað bogið við WHERE ruslið þitt, 3 Jafntog merki í einu where-i er ekki að gera sig?

Annars á ég öll þessi verkefni skiluð í MySQL og 10 fyrir hvert eitt og einasta.


Foobar

Skjámynd

Daz
Besserwisser
Póstar: 3835
Skráði sig: Sun 20. Okt 2002 09:35
Reputation: 157
Staðsetning: Somewhere something went horribly wrong
Staða: Ótengdur

Re: nýliði Alert - Hjálp í Microsoft SQL Server management studi

Pósturaf Daz » Mið 10. Mar 2010 08:58

BjarniTS skrifaði:En svo lendi ég í vandræðum með 15)Birtið áfangastað ferða, kennitölu meðlims ásamt bókuðum fjölda í ferð hjá öllum
Klúbbmeðlimum.

Þarna eru 3 töflur sem að ég þarf að tengja saman geri ég ráð fyrir og ég hélt að ég gæti farið svona að :

Kóði: Velja allt

Select Ferd.afangastadur, Medlimur.kennitala, Bokun.bokadurFjoldi
FROM Ferd Join Medlimur Join Bokun
ON Ferd.tegundFerdar=Medlimur.postnumer=Bokun.bokunarnumer


En þarna fæ ég bara :Msg 102, Level 15, State 1, Line 3
Incorrect syntax near '='.


-
Hvað er ég að gera vitlaust núna ?

Fyrir það fyrsta
ON Ferd.tegundFerdar=Medlimur.postnumer=Bokun.bokunarnumer
Er tegundferdar sama sem postnumer og er postnumer sama sem bokunarnúmer? Hljómar ekki líklegt. (Svo er ég mjög efins um að þú getir sett upp svona þrefalt "samasem".
Annað, venjulega seturðu "join skilyrði" við hverja join skipun, en ekki fyrir aftan þær allar s.s.

Kóði: Velja allt

select t1.*, t2.*, t3.*
from table1 t1
join  table2 t2 on t2.fKey = t1.key
join table3 t3 on t3.fKey = t2.key

(sambærileg skipun)

Kóði: Velja allt

select t1.*, t2.*, t3.*
from table1 t1, table2 t2, table3 t3
where  t2.fKey = t1.key
and t3.fKey = t2.key


Efri samsetningin er ANSI SQL og er nýrri (sem og orðin meira industry standard, bæði í MSSQL og Oracle). Í Oracle eru þessar skipanir líka 100% jafngildar, gefa sama execution plan. (Ef þessar skipanir eru ekki 100% jafngildar, þá myndi ég líka halda að það væri eitthvað að kerfinu :D )



Skjámynd

Höfundur
BjarniTS
Vaktari
Póstar: 2266
Skráði sig: Fim 06. Ágú 2009 01:51
Reputation: 3
Staða: Ótengdur

Re: nýliði Alert - Hjálp í Microsoft SQL Server management studi

Pósturaf BjarniTS » Mið 10. Mar 2010 16:21

starionturbo skrifaði:Hvernig datt þér í hug að byrja á MSSQL, fyrir það fyrsta þá er documentation algjört crap og í öðru lagi er það viðbjóður hehe.

En þetta ætti að virka eins og í MySQL

Kóði: Velja allt

Select Ferd.afangastadur, Medlimur.kennitala, Bokun.bokadurFjoldi
FROM Ferd, Medlimur, Bokun
WHERE Ferd.tegundFerdar = Bokun.bokunarnumer


Nei bíddu það er eitthvað bogið við WHERE ruslið þitt, 3 Jafntog merki í einu where-i er ekki að gera sig?

Annars á ég öll þessi verkefni skiluð í MySQL og 10 fyrir hvert eitt og einasta.

Takk fyrir að svara.
Þetta verkefni heitir GSF103_Skilaverkefni_2
En ég er svosem ekki að byðja endilega um lausnina bara á silfurfati heldur er ég fyrst og fremst að leita af hjálp og ef að þú gætir litið á þetta og gefið mér hugmyndir þá væri það vel þegið , en ég já , nei ætli 3 samasem séu ekki eitthvað bogin :(
En það sem þú gafst mér upp í code glugganum skilar mér samt sem áður töflu , en hún verður bara tóm.
Mynd

En ég er annars bara að læra MSSQL vegna þess að það er það sem áfanginn snýst um , en ætli ég muni svo ekki kynna mér fleira.

Daz skrifaði:Fyrir það fyrsta
ON Ferd.tegundFerdar=Medlimur.postnumer=Bokun.bokunarnumer
Er tegundferdar sama sem postnumer og er postnumer sama sem bokunarnúmer? Hljómar ekki líklegt. (Svo er ég mjög efins um að þú getir sett upp svona þrefalt "samasem".
Annað, venjulega seturðu "join skilyrði" við hverja join skipun, en ekki fyrir aftan þær allar s.s.

Kóði: Velja allt

select t1.*, t2.*, t3.*
from table1 t1
join  table2 t2 on t2.fKey = t1.key
join table3 t3 on t3.fKey = t2.key

(sambærileg skipun)

Kóði: Velja allt

select t1.*, t2.*, t3.*
from table1 t1, table2 t2, table3 t3
where  t2.fKey = t1.key
and t3.fKey = t2.key



Efri samsetningin er ANSI SQL og er nýrri (sem og orðin meira industry standard, bæði í MSSQL og Oracle). Í Oracle eru þessar skipanir líka 100% jafngildar, gefa sama execution plan. (Ef þessar skipanir eru ekki 100% jafngildar, þá myndi ég líka halda að það væri eitthvað að kerfinu :D )


Takk fyrir að svara.
Heyrðu já ég reyndi að nota þetta svona en hbvað er fKey hjá þér í þessu ?
Er table1 , bara fyrsta taflan sem ég nota í samanburðinum , og svo table2 önnur taflan ?

Hvað er t1 , t3 , og það í þessu dæmi sem þú gafst mér ?


Nörd

Skjámynd

Daz
Besserwisser
Póstar: 3835
Skráði sig: Sun 20. Okt 2002 09:35
Reputation: 157
Staðsetning: Somewhere something went horribly wrong
Staða: Ótengdur

Re: nýliði Alert - Hjálp í Microsoft SQL Server management studi

Pósturaf Daz » Mið 10. Mar 2010 20:42

Nöfnin sem ég notaði í dæminu voru augljóslega bara skálduð. t1 er "alias" stytting á nafninu á töflunni, svo í staðinn fyrir að skrifa table1, þá skrifa ég t1 þegar ég vil vísa til þessarar töflu. fKey og key voru bara nöfn út í loftið, en eiga þá að vísa til þeirra reita sem þú vilt tengja saman. Eins og þú gerir hér

Kóði: Velja allt

14) Birtið fornafn og eftirnafn ásamt sveitarfélagi allra meðlima klúbbsins
Select Medlimur.fornafn, Medlimur.eftirnafn, Postnumer.sveitarfelag
From Medlimur JOIN Postnumer
ON Medlimur.postnumer=Postnumer.numer

Þarna tengir þú saman þessar 2 töflur á reitunum postnumer og numer.

Raðaðu SQL setningunni þannig að fyrst setur þú inn einhverja góða upphafs töflu, svo í næstu línu seturðu inn töflu sem þú vilt tengja við OG þau skilyrði sem duga til að tengja þær saman:

Kóði: Velja allt

Select med.fornafn, med.eftirnafn, pos.sveitarfelag
From Medlimur med//upphafstafla
JOIN Postnumer pos ON med.postnumer=pos.numer //tafla sem er tengd við og skilyrðin sem tengja
(Hér er ég líka búinn að stinga inn þessum töflustyttingum)
Ef þú núna skrifar þessa setningu aftur sem þú varst að vandræðast með og reynir að fylgja þessari reglu þá vonandi verður þetta ljósara.

Kóði: Velja allt

Select Ferd.afangastadur, Medlimur.kennitala, Bokun.bokadurFjoldi
FROM Ferd Join Medlimur Join Bokun
ON Ferd.tegundFerdar=Medlimur.postnumer=Bokun.bokunarnumer


Dæmið sem þú fékkst gefið áðan getur líklega aldrei virkað, þetta er bara eins og stærðfræði, miðað við þau gögn sem þú hefur sýnt okkur geta Ferd.tegundFerdar = Bokun.bokunarnumer ALDREI verið jafngild. (tegund = bókunarnúmer??) Það er það sem where skilyrðið biður um, allar línur þar sem þessi 2 gildi eru jöfn. Einnig vantar tengiskilyrði yfir í "Medlimur" töfluna.

Kóði: Velja allt

Select Ferd.afangastadur, Medlimur.kennitala, Bokun.bokadurFjoldi
FROM Ferd, Medlimur, Bokun
WHERE Ferd.tegundFerdar = Bokun.bokunarnumer //Þessir reitir geta aldrei verið jafngildir.



Skjámynd

hagur
Besserwisser
Póstar: 3123
Skráði sig: Mið 17. Des 2003 16:11
Reputation: 454
Hafðu samband:
Staða: Tengdur

Re: nýliði Alert - Hjálp í Microsoft SQL Server management studi

Pósturaf hagur » Mið 10. Mar 2010 21:39

Í fyrsta lagi ... ekki bera saman MySQL og MS-SQL Server. MS-SQL server er enterprise tól og gríðarlega öflugur. MySQL er amateur stuff í samanburði, en góður til síns brúks svosem.

En að dæminu sem spurt er um. Þú ert að misskilja Join-syntaxinn. Prufaðu þetta:

Kóði: Velja allt

Select
   Ferd.afangastadur,
   Medlimur.kennitala,
   Bokun.bokadurFjoldi
FROM
   Medlimur
Join Bokun on bokun.kennitalaMedlims = Medlimur.kennitala
Join Ferd on Ferd.Numer = Bokun.numerFerdar



Skjámynd

Daz
Besserwisser
Póstar: 3835
Skráði sig: Sun 20. Okt 2002 09:35
Reputation: 157
Staðsetning: Somewhere something went horribly wrong
Staða: Ótengdur

Re: nýliði Alert - Hjálp í Microsoft SQL Server management studi

Pósturaf Daz » Mið 10. Mar 2010 22:00

Og ég sem var að reyna að hjálpa, en ekki bara gera heimaverkefnið fyrir hann... :/




starionturbo
Gúrú
Póstar: 542
Skráði sig: Mán 24. Des 2007 11:23
Reputation: 8
Staðsetning: localhost
Staða: Ótengdur

Re: nýliði Alert - Hjálp í Microsoft SQL Server management studi

Pósturaf starionturbo » Mið 10. Mar 2010 22:27

hagur skrifaði:Í fyrsta lagi ... ekki bera saman MySQL og MS-SQL Server. MS-SQL server er enterprise tól og gríðarlega öflugur. MySQL er amateur stuff í samanburði, en góður til síns brúks svosem.

En að dæminu sem spurt er um. Þú ert að misskilja Join-syntaxinn. Prufaðu þetta:

Kóði: Velja allt

Select
   Ferd.afangastadur,
   Medlimur.kennitala,
   Bokun.bokadurFjoldi
FROM
   Medlimur
Join Bokun on bokun.kennitalaMedlims = Medlimur.kennitala
Join Ferd on Ferd.Numer = Bokun.numerFerdar


Ekki bera saman?
Þeir eru bara víst samburðarlegir, og veistu hvað, í dag er MySQL að hafa betur hvað varðar performance.
Ég get nefnt t.d. facebook, sem keyrir um 1800 MySQL þjóna og hér óraunhæft benchmark test sem munar það miklu að það er verðugt að sjá.

Held að menn ættu að hætta að líta í bækurnar sem voru gefnar út árið 2000!


Foobar

Skjámynd

Daz
Besserwisser
Póstar: 3835
Skráði sig: Sun 20. Okt 2002 09:35
Reputation: 157
Staðsetning: Somewhere something went horribly wrong
Staða: Ótengdur

Re: nýliði Alert - Hjálp í Microsoft SQL Server management studi

Pósturaf Daz » Mið 10. Mar 2010 22:51

starionturbo skrifaði:
Ekki bera saman?
Þeir eru bara víst samburðarlegir, og veistu hvað, í dag er MySQL að hafa betur hvað varðar performance.
Ég get nefnt t.d. facebook, sem keyrir um 1800 MySQL þjóna og hér óraunhæft benchmark test sem munar það miklu að það er verðugt að sjá.

Held að menn ættu að hætta að líta í bækurnar sem voru gefnar út árið 2000!

"Test used MS SQL Express".

Svo skiptir nákvæmlega engu máli hvaða kerfi hann er að nota í þessi dæmi sín, Access væri overkill. (Ég mæli með Oracle XE :evil: )



Skjámynd

hagur
Besserwisser
Póstar: 3123
Skráði sig: Mið 17. Des 2003 16:11
Reputation: 454
Hafðu samband:
Staða: Tengdur

Re: nýliði Alert - Hjálp í Microsoft SQL Server management studi

Pósturaf hagur » Mið 10. Mar 2010 23:14

starionturbo skrifaði:
hagur skrifaði:Í fyrsta lagi ... ekki bera saman MySQL og MS-SQL Server. MS-SQL server er enterprise tól og gríðarlega öflugur. MySQL er amateur stuff í samanburði, en góður til síns brúks svosem.

En að dæminu sem spurt er um. Þú ert að misskilja Join-syntaxinn. Prufaðu þetta:

Kóði: Velja allt

Select
   Ferd.afangastadur,
   Medlimur.kennitala,
   Bokun.bokadurFjoldi
FROM
   Medlimur
Join Bokun on bokun.kennitalaMedlims = Medlimur.kennitala
Join Ferd on Ferd.Numer = Bokun.numerFerdar


Ekki bera saman?
Þeir eru bara víst samburðarlegir, og veistu hvað, í dag er MySQL að hafa betur hvað varðar performance.
Ég get nefnt t.d. facebook, sem keyrir um 1800 MySQL þjóna og hér óraunhæft benchmark test sem munar það miklu að það er verðugt að sjá.

Held að menn ættu að hætta að líta í bækurnar sem voru gefnar út árið 2000!


OK, ég skal viðurkenna að ég tók heldur sterkt til orða, fer bara í taugarnar á mér þegar menn eru að segja að MS-SQL sé "rusl" og fleira í þeim dúr, finnst það alltaf lykta af MS-hatri. Það er hárrétt að MySQL er í dag ekkert í líkingu við það sem hann var þegar ég var hvað mest að nota hann, en það var í kringum 2001-2003.

En látum þennan þráð ekki snúast upp í MS-SQL / MySQL trúarbrögð :D Það verða alltaf misjafnar skoðanir í þeim efnum.

Ætlaði heldur ekki að gera lítið úr þínu svari Daz, fannst þetta bara komið á það stig að koma með possible lausn. Tek það fram að ég er ekki viss um að hún geri það sem beðið var um, skrifaði þetta bara from the top of my head. BjarniTS gæti enn þurft að mixa þetta eitthvað.



Skjámynd

Höfundur
BjarniTS
Vaktari
Póstar: 2266
Skráði sig: Fim 06. Ágú 2009 01:51
Reputation: 3
Staða: Ótengdur

Re: nýliði Alert - Hjálp í Microsoft SQL Server management studi

Pósturaf BjarniTS » Fim 11. Mar 2010 00:01

Daz
starionturbo
Hagur


Þið eruð höfðingjar heim að sækja þegar kemur að þessu strákar.
Hver öðrum framar og ég er bara mjög ánægður með þessa hjálp.

Gæti verið að maður kynni sér þetta MSSQL og MYSQL stríð þegar að þar að kemur en ég ætla að setja mig inn í þetta áður en ég fer að taka afstöðu til afkasta.

Kallinn er sáttur.


Nörd