Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Skup vrednosti jedne kolone je podskup vrednosti druge kolone ali nije kljuc???

[es] :: MS SQL :: Skup vrednosti jedne kolone je podskup vrednosti druge kolone ali nije kljuc???

[ Pregleda: 2168 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Belgarion
Novi Sad

Član broj: 245135
Poruke: 71
*.static.sbb.rs.



+2 Profil

icon Skup vrednosti jedne kolone je podskup vrednosti druge kolone ali nije kljuc???24.05.2012. u 13:31 - pre 144 meseci
Tabel "Jedan":
Code:

broj            ime
1              Janko
2              Janko
1              Mirko 
3              Darko

Tabel "Dva":

Code:

broj
1
2
2
3
3
2
1


Dakle imam dve tabele. Recimo da ni jedna tabela nema primarni ključ.
Želim da skup vrednosti kolone broj u tabeli Dva bude podskup vrednosti kolone broj u tabeli Jedan.
Dakle isto kao sa stranim i primarnim ključem samo što ne može tako jer vrednosti nisu jedinstvene pa kolone ne mogu biti ključevi.

Kombinacija kolona broj+ime je jedinstvena pa ću na osnovu toga da nadjem šta mi treba.
Ubacivanje nove kolone koja će biti primarni ključ nije opcija.

Jel ima neko ideje?
Da li može da se napravi neki constraint koji bi odgovarao ovome?

Da još banalizujem. Ako sam ja Mirko i želim u tabelu "Dva" da upišem broj 1 onda treba da mi to dozvoli a ako želim u istu tabelu da upišem broj 2 ili 3 onda ne treba da mi to dozvoli.
Zato što u tabeli "Jedan" postoji par 1+Mirko a ne postoje 2+Mirko i 3+Mirko



[Ovu poruku je menjao Belgarion dana 24.05.2012. u 15:04 GMT+1]
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Skup vrednosti jedne kolone je podskup vrednosti druge kolone ali nije kljuc???24.05.2012. u 14:12 - pre 144 meseci
Bolje sve priznaj, a Đura će oprostiti što te je tukao

U prevodu, napiši tačno šta hoćeš da dobiješ, a ne kako hoćeš da dobiješ. Možda je dizajn skroz pogrešan, a niko ovde nema kristalnu kuglu da pogodi koja su tačno ograničenja sa kojima se srećeš i šta smeš, a šta ne smeš da uradiš...
 
Odgovor na temu

Dusan Kondic
Programer
ZR "Parametar" Ljubovija
Ljubovija

Član broj: 49961
Poruke: 225
109.121.53.*

Sajt: www.drinacoding.com


+14 Profil

icon Re: Skup vrednosti jedne kolone je podskup vrednosti druge kolone ali nije kljuc???24.05.2012. u 14:20 - pre 144 meseci
Ne znam šta tačno želiš. Nadam se da će ovo pomoći.
Code:

DECLARE @T1 TABLE(Broj INT, Ime NVARCHAR(20))
INSERT INTO @T1(Broj, Ime) VALUES(1, N'Janko')
INSERT INTO @T1(Broj, Ime) VALUES(2, N'Janko')
INSERT INTO @T1(Broj, Ime) VALUES(1, N'Mirko')
INSERT INTO @T1(Broj, Ime) VALUES(3, N'Darko')

DECLARE @T2 TABLE(Broj INT)
INSERT INTO @T2(Broj) VALUES(1)
INSERT INTO @T2(Broj) VALUES(2)
INSERT INTO @T2(Broj) VALUES(2)
INSERT INTO @T2(Broj) VALUES(3)
INSERT INTO @T2(Broj) VALUES(3)
INSERT INTO @T2(Broj) VALUES(2)
INSERT INTO @T2(Broj) VALUES(1)

SELECT t1.Broj AS Broj1, t1.Ime, t2.Broj AS Broj2 FROM @T1 t1 INNER JOIN @T2 t2 ON t1.Broj = t2.Broj

SELECT t1.Broj AS Broj1, t1.Ime, t2.Broj AS Broj2 FROM @T1 t1 CROSS JOIN @T2 t2
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Skup vrednosti jedne kolone je podskup vrednosti druge kolone ali nije kljuc???24.05.2012. u 14:46 - pre 144 meseci
drop table t2;
create view t2 as select broj from t1;

Ne znam tačno šta želiš, ali ti ovo sigurno neće pomoći.

Kako znaš da ti je prva dvojka u t2 od Janka, a ne od Marka.

Pod kojim uslovima se nešto upisuje u t1, a pod kojim u t2.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Skup vrednosti jedne kolone je podskup vrednosti druge kolone ali nije kljuc???24.05.2012. u 15:07 - pre 144 meseci
Šta znači tvoje ograničenje da ne sme da bude primarni ključ ni strani ključ.

Primer koji si dao uopšte ne opisuje tvoj problem. Objasni problem, kao i šta to želiš da postigne, a da ima nekog smisla...
 
Odgovor na temu

Belgarion
Novi Sad

Član broj: 245135
Poruke: 71
*.static.sbb.rs.



+2 Profil

icon Re: Skup vrednosti jedne kolone je podskup vrednosti druge kolone ali nije kljuc???24.05.2012. u 15:15 - pre 144 meseci
Dakle da pojasnim i pojednostavim.
Treba mi ograničenje, da u Drugu tabelu(kolona broj) nemože da se upisuje ono što nije u prvoj tabeli(kolona broj).
Zaboravite na imena, dovoljno mi je da ovo prodje.

Nešto ovako:

Code:

 ALTER TABLE Dva
    ADD CONSTRAINT tralala CHECK ( broj in (Select broj FROM Jedan))


Samo ovo ne može. Javlja mi :
Code:

Msg 1046, Level 15, State 1, Line 2
Subqueries are not allowed in this context. Only scalar expressions are allowed.
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Skup vrednosti jedne kolone je podskup vrednosti druge kolone ali nije kljuc???24.05.2012. u 21:22 - pre 144 meseci
Citat:

Treba mi ograničenje, da u Drugu tabelu(kolona broj) nemože da se upisuje ono što nije u prvoj tabeli(kolona broj).
.....

Ubacivanje nove kolone koja će biti primarni ključ nije opcija.

.....

Jel ima neko ideje?
Da li može da se napravi neki constraint koji bi odgovarao ovome?

Da još banalizujem. Ako sam ja Mirko i želim u tabelu "Dva" da upišem broj 1 onda treba da mi to dozvoli a ako želim u istu tabelu da upišem broj 2 ili 3 onda ne treba da mi to dozvoli.
Zato što u tabeli "Jedan" postoji par 1+Mirko a ne postoje 2+Mirko i 3+Mirko



U tabelu "Dva" doaj kolonu Ime, i mozes onda da dodas FK. Ovako nekakko:
Code:

-- Pseudocode
CREATE TABLE Jedan
(
Broj int NOT nULL
, Ime varchar(15) NOT nULL
PRIMARY KEY (Broj, Ime)
)

CREATE TABLE Dva
(Broj int NOT nULL
, Ime varchar(15) NOT nULL
, JosNekaKolona bilo_koji_tip_oism_BLOB NOT NULL
PRIMARY KEY (Broj, Ime,JosNekaKolona )
FOREIGN KEY  (Broj, Ime) REFERENCES Jedan (Broj,Ime)
)


Ispunio sam sve uslove kjoje si dao:
1) ne moze se upisati u tabelu Dva nesto sto ne postoji u tabeli Jedan
2) nisam dodao kolonu koja bu i Jedan predstavljala PK, ne bih to uradio i da si trazio
3) nisi rekao da je zabranjeno u tableu Dva dodati jos jednu kolonu.
Ako imas pravo da
ALTER TABLE ADD CONSTRAINT,
onda imas pravo i da
ALTER TABLE ADD [ColumnNme]....



 
Odgovor na temu

Belgarion
Novi Sad

Član broj: 245135
Poruke: 71
*.adsl-a-3.sezampro.rs.



+2 Profil

icon Re: Skup vrednosti jedne kolone je podskup vrednosti druge kolone ali nije kljuc???24.05.2012. u 22:28 - pre 144 meseci
Code:
Šalje žena muža programera u radnju i kaže mu "Kupi margarin a ako ima jaja kupi 10".
 Muž se vrati iz radnje, kupio je 10 margarina i kaže "Bilo je jaja" :)

OK kontam pogrešno sam definisao probelem.
Treba mi CONSTRAINT !!!
Da li neko zna da napise takav CONSTRAINT ?
 
Odgovor na temu

Belgarion
Novi Sad

Član broj: 245135
Poruke: 71
*.static.sbb.rs.



+2 Profil

icon Re: Skup vrednosti jedne kolone je podskup vrednosti druge kolone ali nije kljuc???25.05.2012. u 08:10 - pre 144 meseci
Evo resenje ako nekog zanima:

Code:


CREATE FUNCTION [dbo].[GetSuma](@BR int)
RETURNS INT
AS
BEGIN
DECLARE @BR INT
SET @BR =(select count(*) from Jedan where Jedan.Broj = @BR)
RETURN @BR
END;
GO

ALTER TABLE Dva
    ADD CONSTRAINT tralala CHECK ( dbo.GetSuma(Broj)>0)
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Skup vrednosti jedne kolone je podskup vrednosti druge kolone ali nije kljuc???25.05.2012. u 16:15 - pre 144 meseci
Jes i li siguran da novi CHECK garantuje ovo:
Citat:

Da još banalizujem. Ako sam ja Mirko i želim u tabelu "Dva" da upišem broj 1 onda treba da mi to dozvoli a ako želim u istu tabelu da upišem broj 2 ili 3 onda ne treba da mi to dozvoli.
Zato što u tabeli "Jedan" postoji par 1+Mirko a ne postoje 2+Mirko i 3+Mirko

Tvoj zahtev gleda da li Mirko ima broj 2 ili 3, a funkcija gleda samo u Broj. Po funkciji, ako bilo ko u tabeli Jedan ima broj 3, dozvolice se upis broja 3 u tabelu Dva. To nije u skladu sa ovim sto si napisao, 1+Miro, 2+Mirko. Funkcija ne zna da li si ti Mirko ili Slavko.

Code:
OK kontam pogrešno sam definisao probelem.


Srecan rad

 
Odgovor na temu

[es] :: MS SQL :: Skup vrednosti jedne kolone je podskup vrednosti druge kolone ali nije kljuc???

[ Pregleda: 2168 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.