SQL kérdések - Szoftverfejlesztés fórum

üzenetek

hozzászólások


gyurman
(tag)

Akkor a tulajdonsaggal_rendelkezik -be kell (termek_id,tul_id1,tul_id2,tul_id3,tul_id4,tul_id5)?
Így csak 5 tulajdonság kezelésére alkalmas a tábla? Mindegyikbe csak 1 számot lehet írni?
De ezzel a módszerrel hogyan keresek? 5 mezőben hogyan keresek?
Ezer köszi.


shev7
(veterán)

honnan vetted azt, hogy 5 mezo van? minden termek-tulajdonsag par egy sor a tablaban

termek_id,tul_id1
termek_id,tul_id2
termek_id,tul_id3
termek_id,tul_id4
termek_id,tul_id5

ugyanigy egy masik termek_id-hoz is felvehetsz tulajdonsagokat...

Ha egy termek tulajdonsagait keresed leszursz termekid-ra. Ha egy tulajdonsagnak megfelelo termekeket keresel leszursz tulajdonsag_id-ra. Ha azt akarod tudni, hogy egy termek-re jellemzo-e egy tulajdonsag leszursz mindkettore... nem olyan bonyolult ez...


tzs84
(tag)

ezeknek nézz utána és egyből érteni fogod miről beszélünk

-egyed-kapcsolat modell
-relációs adatbázisséma
-normálformák


gyurman
(tag)

Köszi a választ!
MYSQL-t szeretnék installálni, de az összes hivatalos oldalról töltött nem megy a gépemen.
Tipikus error 1335 product.cab bug-ot kapok.
Hol találhatok olyan verziót ami megy a sima xp home -on? A gépben Intel 64 bites proci van.

Ti mit használtok?
Tapasztaltatok ilyet?

[Szerkesztve]


MUŁĐER
(addikt)

Helló

Visual Foxpro.ban szeretnék két adatbázis tábláis között adatot cserélni az insert into parancsal. Az Alis045.dbf különböző oszlopaiban lévő adatokat kéne a JT1.másnevű oszlopaiba rakni.

Próbáltam ezt:

INSERT INTO C:\temp\táblák\JT1.dbf (Tipus ).|. Ja_gtipus FROM C:\temp\MIKI2006\DBV\Alis045.dbf;

de syntax error....valaki tudna segíteni hogy mit írtam rosszul?

[Szerkesztve]


vakondka
(őstag)
Blog

Próbáld meg a WAMP, vagy az Easyphp nevű ingyenes programok valamelyikét.
Ezek mindent egyben felraknak: apache, php, mysql, phpmyadmin.
Előtte távolítsd el a régi apache szervert, mysql-t és php-t.


gyurman
(tag)

Aha, ezer köszi!

Még egyet kérdeznék.
Hogyan lehet olyan like utasítást adni ami a másik oszlopban lévő értéket keresi magában?
Tehát a gond 1. oszlopban Erika van, a 2. ban csak Eri. És erihez meg kellene találni az Erikát. De hogy?
Vagy excelben tudtok ilyen képletet?


shev7
(veterán)

az gaz, ha nem ertem pontosan mi a kerdes?


gyurman
(tag)

A lényeg, két táblát kell úgy összepárosítani, hogy az egyik mezőben a másik mezőnek csak a töredéke van meg. Eredeti mező: Erika adattal.
Töredékmező: Eri adattal
A két mezőt lekérdezéssel egymás mellé kellene tenni, de hogy?


Louloudaki
(aktív tag)

ha a töredék mező elején van, és fix hosszúságú amit keresel, illetve a másik mezőnek is az elején van a keresendő, akkor left outer join

select hosszú.mező, rövid.mező
from hosszú
left outer join rövid
on (substring(hosszú.mező,1,3)=substring(rövid.mező,1,3))



[Szerkesztve]


gyurman
(tag)

MAjdnem jó, csak nem fix hosszúságú. Köszi


Louloudaki
(aktív tag)

akkor nehéz dolgod lesz. nem lehet megoldani fix hosszal?


gyurman
(tag)

Megoldottam OO calc-cal, VLOOKUP és =SEARCH(C2;B2;1) paranccsal.

Már csak annyi a kérdésem:
1. mező egyedi értékekkel
2. dulpázott értékekkel rendelkezik.
Ebből szeretnék olyan táblát csinálni, hogy a duplázott értékek egyediek legyenek és az egyedi meg hiányosan jelenne meg.
Ezt hogyan tehetem?


Fehér Mancs
(tag)

A kapcsolatnál like-ot is meg lehet adni, szerintem ez működik:

select hosszú.mező, rövid.mező
from hosszú
inner join rövid
on hosszú.mező like (rövid.mező || '%')


DeniBoy
(aktív tag)

Sziasztok !


Van 1 adatbázis kezelőm ami .tab kiterjesztést használ, amibe menti az adatokat


Ez régebbi sqlce adatbázis progival készült amit láttam
de a tartalma az ilyen:

1644,390,44101744,'2007/7/23',3,121,NULL,NULL,NULL

valahogy igy néz ki texteditorral :
ez is ugyan ez csak más számok, vagy más a sorrend:

...¶ŢË ŕ E ‡¶ŢË ŕ E †¶ŢË ŕ E
†¶ŢË Ŕ˜D

valami ilyen tartalom van benne, mivel láthatnám az adatokat vagy szerkeszthetném ?


lapa
(veterán)

üdv. van egy oracle selectem:

select bla, bla2, bla3, bla4 from tabla where ...

egy olyan oszloppal kéne kiegészítenem, amely megszámolja, hogy hány ugyanolyan fajta sor van az adott soron kívül (tehát pl bla azonos az adott sorral).

a problémám annyi, hogy nem tudok aliast adni, mert az adott programkörnyezet nem teszi ezt lehetővé. ennek oka, hogy mindenképp kiegészíti az én jó kis aliasos selectemet egy alias nélküli where-rel...

megpróbáltam beágyazni egy másik select-et (ez tűnne a szimpatikusnak):

select bla, bla2, bla3, bla4,
(select count(*) from tabla ujra where ujra.bla = bla) from tabla where ...

ez kihoz egy eredményt, de úgy tűnik ez valami rettentő nagy eredményt ad. úgy sejtem, hogy nem tudtam neki megmondani, hogy csak az adott sor bla értékéhez egyezőket keressen.

remélem érthető a probléma. elég láma vagyok sql-ben de minden tippet szívesen fogadok. próbáltam rákeresni a neten, de nem jutottam előbbre.


Jester01
(veterán)
Blog

1. Az alias nem befolyásolja a where-t, ott attól még nyugodtan lehet használni az eredeti nevet is.
2. ez valami rettentő nagy eredményt ad: Ugyanis az al-selectben ha nem írod ki explicit a táblanevet/aliast akkor az a belső táblá(k)ra vonatkozik. Tehát tulajdonképpen azonosságot írtál (eltekintve attól, hogy NULL != NULL). Helyesen a külső selectben kell megadni tábla aliast és arra hivatkozni. Így ni:

select bla, bla2, bla3, bla4,
(select count(*) from tabla where bla = kulso.bla) from tabla kulso where ...


lapa
(veterán)

értem. a baj így csak annyi, hogy én pont a külső táblának nem adhatok aliast. a program, ahol ez a select lefut automatikusan kiegészíti az általam megadott where részt további változókkal (végülis egy formban megadott adatokkal), viszont nem ír eléjük aliast (

kulso.blan

). ilyenkor ugyebár a program által megadott változókra 00918 ambiguously defined hibát kapok.

de mondok jobbat: ne küzdj vele, megcsináltam excel & ms query-ben, végülis az eredmény volt a lényeg.


lapa
(veterán)

üdv. lenne egy következő kérdésem, szintén oracle sql alá:

vagy egy randa oszlopom a select részben, amit viszont szeretnék több más oszlopban is használni. hogy érthető legyen az első oszlop két időpont különbsége másodpercben. ezt a másodpercet szeretném más oszlopokhoz is használni (pl. ha van még egy méter oszlop, akkor méter / másodperc értékhez).

megoldható valahogy, hogy a ronda másodperc-kivonós oszlopnak valami kvázi nevet adjak és utána csak ezt a változót használjam a többi oszlopnál? köszönöm.


#65304576
(csendes tag)

Eltartott egy ideig, mire értelmeztem, de azt hiszem, értem. :) Tehát van egy többé-kevésbé bonyolult képleted (kivonás), amit egy csomó más helyen is használni szeretnél ugyanazon select-en belül, és ezért szeretnéd először kiszámolni, majd a többi oszlopnál is valamiféle változót használni.

A probléma csak kényelmi és vizuális ("csúnyán néz ki"), performanciára nincs hatása, mert az első kivonás eredménye kvázi konstansként behelyettesítődik majd a többi képletbe is (a parser felismeri az azonos kifejezést).
Az Oracle-nek egyébként nincs inline változója, bár al-select-ekkel (inline view, vagy with ... as) megoldható a dolog, azzal igen valószínű, hogy csak rosszabbul jársz. :)
Szóval marad a ctrl+c / ctrl + v. :) (Vagy a pl/sql, de az is lassabb lesz.)

Ha a kifejezést máshol is használni kellene (pl. where-ben), akkor már esetleg lehet gondolkozni azon, hogy előre kiszámolni és primary key alapján visszakötni a főtáblához, immár egyszerű oszlopként. Pl.:

with sub_diff as ( select id, end_time - start_time mp_diff
from table1 where (end_time - start_time) < 5 )
select d.data1 / t.mp_diff, d.data2 / t.mp_diff, d.data3 / t.mp_diff
from sub_diff t, table1 d
where d.id = t.id

[ Szerkesztve ]

üzenetek