Problém s výběrem hodonoty z tabulek v MS SQL
Dobrý den,
pokusím se vysvětlit můj problém ve zjednodušené podobě.
Mám tabulku Tabulka1 ve které jsou uloženy čísla př.: 1,2,3...
tyto čísla jsou idčka v Tabulce2.
a já potřebuji aby mi select nevrátil číslo ale už hodnotu pod idčkem z druhé tabulky
takže se mi nevrátí 1,2,3... ale "pod idčkem 1 je uloženo auto".
Je to jen ukázka potřebuji jen zjistit jak se to dá udělat, pak už si to rozšířím potřebuji to porovnávat takto mezi cca 4-5 tabulkami.
Děkuji moc za váš čas a pomoc.
Sežeň si nějakou knížku o SQL, tohle je naprostý základ.
jj tak ve škole to budu brát až za 2 roky :D děkuju moc jdu to vyzkoušet a aplikovat.
Skúšaj, aplikuj..., ale hlavne si o tom niečo prečítaj. Za 2 roky až to budete brať v škole budeš mať náskok a možno naučiš niekoho Ty.
jj doufám ;) a přečtu si jen teď to potřebuji vyřešit tento problém :)
select indo.nazevFirmy
from info_dopravce indo
join dopravce_info doin on indo.id = doin.dopravce
Děkuji moc už mi to funguje tohle je můj případ u dvou jdu to upravit na tech 5 děkuji moc za pomoc. :)
Nakonec jsem to udělal celé takto:
SELECT inza.firma, indo.nazevFirmy, doin.Cobjednavky, inmn.mnakladky, inmv.mvykladky, obin.datumNakladky, obin.datumVykladky, obin.cena, doin.cena AS Expr1,
obin.cena - doin.cena AS Expr2
FROM info_dopravce AS indo INNER JOIN
dopravce_info AS doin ON indo.id = doin.dopravce INNER JOIN
objednavka_info AS obin ON doin.Cobjednavky = obin.Cobjednavky INNER JOIN
info_zakaznik AS inza ON obin.zakaznik = inza.id INNER JOIN
info_mvykladky AS inmv ON obin.mistoVykladky = inmv.id INNER JOIN
info_mnakladky AS inmn ON obin.mistoNakladky = inmn.id
a děkuji moc už tomu rozumím.
Máš zajímavě pojmenované tabulky. Zvlášť info_dopravce a dopravce_info určitě vůbec nebude matoucí.
mvykladky a mnakladky znamení místo vykládky a nakládky? Nebylo by lepší dát to do jedné tabulky?
Mam to udělané jako nápovědu při vkládání objednávky takže se mi do objednávky naukládají jen idčka z př.: info_dopravce, info_mnakladky, info_mvykladky, info_zakaznik,.... a není to matoucí vše co začína info je ta nápověda ve které mám bližší údaje.
A ano m=místo.
A mám ještě jeden dotaz ono může být více objednávek pod jedním dodavatelem dá se v MS SQL udělat jakási podmínka, že když tam budou dvě objednávky se stejným Cobjednavky(Číslem objednávky) aby se nevypsaly ale pouze se sečetly nějaké údaje a pak až vypsaly?
jestli ano stačí mi zase nějaká jednoduchá ukázka já to už nějak ošéfuji :) Děkuji moc za dosavadní obrovskou pomoc a doufám že mi poradíte i stímto :)
Děkuji
Že se ukládají jenom IDčka je normální, kvůli tomu nemusí být nějaké "nápovědné" tabulky.
nene ty jsou kvůli že uživatel nemusí vypisovat vždy firmu,adresu,fa,telefon,..... ale zadá tam jen zkratku pod kterou má uložené všechny věci a k těmto věcem pod tou zkratkou je to id.
a Děkuji
Je mi jasné že by se to vše dalo řešit elegantně :) ale do toho mám ještě daleko ale pracuji natom.
Na tom bys měl začít pracovat hned na začátku. Říká se tomu normalizace databáze. Pokud ji neprovedeš, tak budeš později řešit dost nepříjemné problémy.
SELECT Cobjednavky, SUM(id) AS Expr1
FROM objednavka_info
GROUP BY Cobjednavky
už to jen změnit pro všechny děkuji moc :)
http://imageshack.us/photo/my-images/51/ukazkaprob lemu.png/
tady dávám jen obrázek programu pro představu a měla to být ukázka jak to myslím, ale byl jste rychlejší :)
a program je totálně rozdělaný takže... :)
Děkuji moc za pomoc jste profik :)
select IDdodavatel, sum(cena)
from objednavky
group by IDdodavatel
tohle je podle toho jak jsem pochopil pro tabulku ve které existuje dana skupina jak to mám změnit když je tam tabulek více a v některých IDdodavatel vůbec není?
Nebo mě teď napadlo dalo by se stím výstupem v sql dál pracovat? když mi ten příkaz vyhodí:
cisloObj nazev cena
001 aa 100
002 ae 1250
002 er 50
pak ten výstup zredukovat na:
cisloObj nazev cena
001 aa 100
002 ae 1300
Diky
Tenhle výpis je ale podle mě nesmysl. Z jakého důvodu se "ea" a "er" zredukovalo jenom na "ae"?
Jinak je to primitivní...
nerozimues, len si naklikal script cez ten debilny dizajner a este si si tam nechal aj aliasy "expr1" a "expr2".
Ten jsem napsal celej ja a pak jsem to hodil do disaineru abych to vyzkoušel a on to tam dopsal tak jsem to tam nechal a navic nechsi se tím nějak obracet ale je mi 16 a učím se, promiň že to nedělám na profi úrovni když se vše učím z vlastní iniciativy a chci se to časem naučit...