Tema: Re: SQL klausimas
Autorius: Jornada Del Muerto
Data: 2010-11-16 16:15:57
Duombazes struktura jei vienoje lenteleje laikai viska (info apie parduotuve + prekes jos )  is karto kuolo verta...

Jei tos pacios prekes skirtingose parduotuvese turi skirtingas kainas tai simple struktura butu daugmaz tokia:

imones (id, pavadinimas ) // aka maxima, rimi ir t.t..
parduotuves ( id, imonesId, pavadinimas, adresas )    // pvz. gal konkrecioj pardej akcija 
preke ( id , pavadinimas )
asortimentas ( id, parduotuvesId, prekesId, kiekis, kaina )


Na pagal tavo tokia ne itin man patinkancia struktura butu taip, sukuriu tam lenta:

CREATE TABLE [dbo].[alaus_kainos](
 [id] [int] IDENTITY(1,1) NOT NULL,
 [parduotuve] [nvarchar](100) COLLATE Lithuanian_CI_AS NULL,
 [preke] [nvarchar](100) COLLATE Lithuanian_CI_AS NULL,
 [kaina] [money] NOT NULL CONSTRAINT [DF_alaus_kainos_kiaina]  DEFAULT ((0)),
 CONSTRAINT [PK_alaus_kainos] PRIMARY KEY CLUSTERED 
(
 [id] ASC
)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

ten suvesi parduotuves savo, prekes ir kainas, tada vaziuojam toliau:

SELECT 
 ak1.parduotuve, 
 ak1.preke,
 ak1.kaina
FROM
 alaus_kainos ak1
INNER JOIN (
 -- Jamam visu prekiu minimalias kainas
 -- tai galetu buti ir view'u aka vwMinPrices 
 -- is kurio laisvai selectintum po to
 SELECT  preke,   MIN(kaina) AS kaina
 FROM  alaus_kainos
 GROUP BY preke
) ak2 ON ak2.preke = ak1.preke 
  And ak2.kaina = ak1.kaina

it works, tested! :) nors ir kiek tupoka uzklausa gavosi :)


Freelancer Developer
http://www.lythum.lt

    



"System" <vytautas.butkus@gmail.com> wrote in message news:ibtrsa$pt$1@trimpas.omnitel.net...
> Sveiki,
> 
> Sukuriau lentele, kurioje yra info apie Parduotuve, prekes parduodamas tose 
> parduotuvese, kainas ir kiekius. Sakykim yra preke pavadinimu Alus Maximoj 
> ir Rimi, bet Maximoj tas alus kainuoja 1LT kai Rimi kainuoja 2LT. Noriu 
> padaryti SELECT'a visoms prekems kurios yra lentelese ir matyti tik tas, 
> kurios parduodamos uz maziausia kaina kazkokioje parduotuveje.
> 
> pvz:
> Maxima ALUS 1lt
> Rimi ALUS 2lt
> IKI CIPSAI 3LT
> Maxima CIPSAI 4LT
> 
> rezultatas turetu buti:
> Maxima ALUS 1lt
> IKI CIPSAI 3LT
> 
> Ar cia reikia daryti su WHERE salyga, ar su HAVING? Galvoje sukasi 
> variantas, kad reiktu su WHERE daryti ir kazkaip subselect'a sugeneruoti 
> kuris grazintu maziausia kaina atitinkamai prekei?
> 
> Dekui 
>
3Dastronomyagricultureaudioautosautos.audiautos.audioautos.binariesautos.bmwautos.clubautos.fordautos.hondacrxautos.japanautos.mercedesautos.opelautos.sportautos.volvoautos.vwaviaavia.binariesbankcardsbinariesbooksbuildingcinemacommercecomp.hardwarecomp.softwarecomp.lietuvinimascomp.networksculturedarbas.ieskaudarbas.siulaudesigneconomicselectronicsfaunafauna.aquafauna.binariesfishingflorafotofoto.binariesgamesgames.csgames.onlinegsmgurmanaihumourhumour.binariesinternetlawmicrosoftmotomusicmusic.binariesmusic.instrumentsmusic.LT.binariesnavigacijaphppoliticsprogrammingrpgsportstudyingsveikatatalktesttranslationtransportationtraveltravel.binariestvunixvideovideo.binarieswatersportswwwwww.flashpdaautos.supermama.ltmobiledarbasretro.3Dretro.agricultureretro.astronomyretro.audioretro.autosretro.autos.audiretro.autos.audioretro.autos.binariesretro.autos.bmwretro.autos.clubretro.autos.fordretro.autos.hondacrxretro.autos.japanretro.autos.mercedesretro.autos.opelretro.autos.sportretro.autos.supermamaretro.autos.supermama.ltretro.autos.volvoretro.autos.vwretro.aviaretro.avia.binariesretro.bankcardsretro.beosretro.binariesretro.booksretro.buildingretro.cinemaretro.commerceretro.compretro.comp.hardwareretro.comp.lietuvinimasretro.comp.networksretro.comp.softwareretro.cultureretro.darbasretro.darbas.ieskauretro.darbas.siulauretro.designretro.economicsretro.electronicsretro.e-vejasretro.faunaretro.fauna.aquaretro.fauna.binariesretro.fishingretro.floraretro.fotoretro.foto.binariesretro.gamesretro.games.csretro.games.onlineretro.games.rpgretro.genealogijaretro.gsmretro.gurmanairetro.humourretro.humour.binariesretro.internetretro.YZFretro.YZF.nebukretro.YZF.nebuk.netikintisretro.YZF.nebuk.netikintis.bukretro.YZF.nebuk.netikintis.buk.tikintisretro.lawretro.microsoftretro.mobileretro.motoretro.musicretro.music.binariesretro.music.instrumentsretro.music.LTretro.music.LT.binariesretro.navigacijaretro.newsretro.news.taisyklesretro.newuserretro.pdaretro.phpretro.politicsretro.programmingretro.rpgretro.sportretro.studyingretro.sveikataretro.talkretro.translationretro.transportationretro.travelretro.travel.binariesretro.tvretro.unixretro.videoretro.video.binariesretro.watersportsretro.wwwretro.www.flashdiylt.rkm.news.announcelt.rkm.news.newuser