snach15 Posted December 6, 2010 Author Report Share Posted December 6, 2010 (edited) bet MySql un SQL ir tomēr aršķirība ... nējav kautkas slēpjas tajā kad esmu slinks .. redz kad pats rakstīju kad izdevās pašam kautkā sakodēt čakarējoties un lasot ntos forumus un ntās pamācības .. diemžēl neizdodas joprojām uzrakstīt tā kā itkā tas būtu pareizi .. personīgi man liekas diezgan sarežģīta lieta .. un lai to vispār uzrakstītu ir vajadzīga saprašana kā to izdarīt .. jo zini konkrēti katru rindiņu kur ko likt tad jav elementāri arī būtu .. bet ja nav sajēga ko kur likt tad tas ir čav .... viegli ir tādā gadījumā ja kāds uzrakstu nu piemēru.. domāju kad tadiem koderiem kā jums tas nevarētu būt grūti un vairāk par 3 minūtēm tas neaizņemtu .. bet mja var saņemt tikai pārmetumus kad viss ir nepareizi un kautkādus googles linkus kur nav ne pamatojuma scriptam nekas .. vsp kautkādi scriptu kur kautkas tāds ir minēts .. še kodē ... es tak labi teicu kad man nevajg visu scriptu lai kāds uzraksta .. bet kautvai ar vārdiem uzrakstīt kam jābūt kā jābūt vai vismaz labākajā gadījumā tur kādu mazu piemēru (nepabeigtu scriptu) tas tak nav nemaz tik grūti ... bet kam ir jā .. varbūt drīzāks skopums nevis slinkums ... bet mja paldies visiem tāpat kas centās un atmeta googles linkus un nolasīja kritiku kad viss ir galīgi garām .. Edited December 6, 2010 by snach15 Quote Link to comment Share on other sites More sharing options...
Mr.Key Posted December 7, 2010 Report Share Posted December 7, 2010 (edited) Kā es risinātu problēmu: 1) Prasīts: Noteikt iepriekšējā mēnesī reģistrēto lietotāju skaitu 2) Dots: DB tabula ar lietotājiem, katram lietotājam dots reģistrēšanas datums un laiks Kā mēs to varam izdarīt? 1) SQL izteiksme jāveido tā, lai tā atlasītu tikai tos ierakstus, kas atbilst iepriekšējam mēnesim, raugoties no pieprasījuma viekšanas brīža 2) SQL izteiksme jāpapildina tā, lai tā izvadītu ierakstu daudzumu, nevis ierakstus Punktā (1) runa ir par WHERE (kur) nosacījumu, kurā mēs izmantosim salīdzināšanu gan ar katra ieraksta datumu, gan ar šodienas datumu. Punktā (2) mēs izmantosim grupēšanas funkcijas (agregātfunkcijas). Reģistrēšanas laiks var būt norādīts kā timestamp (skaitlis INT formātā, jeb sekundes no 1970.01.01. 0:00), kā DATE vai DATETIME lauks (datubāzes iekšējais formāts, kura spēks ir izmantojot SQL datumu funkcijas), vai kā tavā gadījumā, string (dd.mm.yyyy). Manuprāt, pēdējais variants nav slikts, bet nav arī labs. Tas nav nepareizs, bet labāk ir izmantot DATE tipa lauku. Tā kā date tipa lauks netiek izmantots, mēs to pārveidosim. To var izdarīt ar funkciju, kuru atradīsim MySQL manuāļa sadaļā Date and Time functions. Pārveidot no stringa: mysql> SELECT DATE('2003-12-31 01:02:03'); -> '2003-12-31' Pārveidot no timestamp: mysql> SELECT FROM_UNIXTIME(1196440219); -> '2007-11-30 10:30:19' Protams, SQL izteiksmē mēs piemēros redzamās konstantes aizvietosim ar attiecīgo datubāzes lauku. Šos piemērus der arī uzreiz SQL konsolē pamēģināt, paskatīties arī kā citas funkcijas darbojas! Funkcija DATE() nederēs, jo tev datums ir norādīts citādā formātā, tāpēc tavs uzdevums ir atrast īsto funkciju - FUNKCIJA1(datums) => <SQL datums> Tālāk apskatīsimies, kā atrast iepriekšējo mēnesi. Tas, ko tev vajadzēs, ir salīdzinājums WHERE izteiksmes daļā: <datubāzes rindas mēnesis> = <iepriekšējais mēnesis> Tavs uzdevums: 1. Tajā pašā manuāļa sadaļā atrast funckiju, kas atgriež mēneša ciparu no datubāzes lauka - FUNKCIJA2(<SQL datums>) => [1 - 12] Kā atrast iepriekšējo mēnesi? Tas tev būs pa grūtu, tāpēc uzrakstīšu priekšā: SUBDATE(NOW(), INTERVAL 1 MONTH); Tavs uzdevums ir atrast manuālī šo funkciju, izlasīt tās aprakstu, paspēlēties ar to. Tātad, esam nonākuši līdz tam, ka SQL WHERE izteiksme būs tāda: FUNKCIJA2(FUNKCIJA1(datums)) = FUNKCIJA2(SUBDATE(NOW(), INTERVAL 1 MONTH)) Viss, kas mums atliek, ir saskaitīt šos laukus, ko daram ar COUNT(*). Tā kā mēs skaitām visus laukus, GROUP BY daļu SQL izteiksmē neliekam. Tavs uzdevums - uzrakstīt pilnu SQL izteiksmi. Pielāgot, lai to var izmantot pagājušās dienas, nedēļas, gada utml. reģistrēto lietotāju skaita noteikšanai. Vēlu veiksmi! Edited December 7, 2010 by Mr.Key Quote Link to comment Share on other sites More sharing options...
snach15 Posted December 7, 2010 Author Report Share Posted December 7, 2010 mmm perfecti ... nenormāli liels paldies! pēc tāda teksta man ir jav 70% skaidrs kā uzrakstīt .. atliek 30 % pašam samontēt! paldies tev tiešām Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.