Kwa wataalamu wa database karibuni

Kwa wataalamu wa database karibuni

shalet

JF-Expert Member
Joined
Feb 12, 2013
Posts
3,441
Reaction score
3,613
Imagine wewe ni dba katika kampuni ya logistic umepewa kazi na boss uonyeshe mizigo inakaa muda gani mpaka inatoka hapa chini naweka table yenye field ya item_id ,handlintype kuonyesha mzigo umeingia au umetoka na handling date kuonyesha tarehe ya mzigo kuingia au kutoka na quantity ambayo siyo ya muhimu sana sasa andika query itakayokupa idadi ya siku ya mzigo kukaa kwenye store yenu.

NB: Sorry quantity ya mzigo lazima ifanane nilikosea navohamisha taarifa sababu nilijua siyo ya muhimu mfano viazi001 kwenye IN lazima vi match kwenye OUT mzigo ukiingia unatoka wote.

Karibuni
e8f4549fd483d833958fdc4f8e7663af.jpg
 
uzi mtamu sana huu. ila mimi sijaelewa swali lako. ni kwamba tutengeneze tables or
 
uzi mtamu sana huu. ila mimi sijaelewa swali lako. ni kwamba tutengeneze tables or
sio table tengeneza querl itakayoleta relut ya mzigo fulani umekaa siku ngap
 
Imagine wewe ni dba katika kampuni ya logistic umepewa kazi na boss uonyeshe mizigo inakaa muda gani mpaka inatoka hapa chini naweka table yenye field ya item_id ,handlintype kuonyesha mzigo umeingia au umetoka na handling date kuonyesha tarehe ya mzigo kuingia au kutoka na quantity ambayo siyo ya muhimu sana sasa andika query itakayokupa idadi ya siku ya mzigo kukaa kwenye store yenu.

Karibuni
e8f4549fd483d833958fdc4f8e7663af.jpg
Sijui ni mimi sikuelewi au hujaandika swali kiufasaha? Mfano hapo kwenye handling_date ndo mzigo unatoka au unaingia? Kwa sababu mzigo unaingia na kutoka nilitegemea kuona column mbili za tarehe ili kupata difference ya siku kutoka kwenye hizo tarehe, mfano uweke handling_date kuwa ndo mzigo umeingia na due_date ndo mzigo unatoka, bila kujua tarehe ya mzigo umeingia lini na unatoka lini huwezi kupata difference ya siku,
Pili huja specify ni database gani unatumia, ni MySQL, SQLite, oracle DB au ipi!? Hii ingesaidia watu kukusaidia kwa usahihi maana kuna vitu vidogo huwa zinatofautisha query zake kwenye kila DB , sasa kama hujaspecify ni DB gani unatumia tegemea kupata usichokihitaji ingawa itakuwa imesolve tatizo lako kwa 100% bali wewe utashindwa kuimplement kwenye tatizo lako
Tatu, hujaspecify kama kuna supportive language yoyote kwenye query zako kama vile PHP, JAVA au nyinginezo au ni query tu pasipo language yoyote
Ingekuwa ni mimi ningeweka column mbili kama nilivyosema hapo juu (handling_date na due_date) kisha query yangu ingekuwa hivi

SELECTE DATEDIFF(due_date, handling_date) as remaining_days FROM my_table WHERE id_item = 1

Hii ni kwa MySQL DB tu sijui kama DB nyingine zina function ya kupata difference ya days

Kama ningekuwa na supportive language kama PHP, ingekuwa hivi


$query = $db->query("SELECT * FROM mytable");

foreach ($query->result() as $row){
$handling_date = strtotime($row->handling_date);
$due_date = strtotime($row->due_date);
if($due_date >$handling_date){
$hours = $due_date - $handling_date;
$hours = $hours / 3600;
$time_left = round($hours / 24);
if($time_left < 1){
$time_left = "Less than 1 day ";
}else{
$time_left = $time_left."days remaining ";
}
}else{
$time_left = "Expired ";
}
echo $time_left;
}
Hizi examples zote ni assumptions tu kwa mimi understand yangu juu ya swali lako unless toa maelezo yaeleweke
 
Sijui ni mimi sikuelewi au hujaandika swali kiufasaha? Mfano hapo kwenye handling_date ndo mzigo unatoka au unaingia? Kwa sababu mzigo unaingia na kutoka nilitegemea kuona column mbili za tarehe ili kupata difference ya siku kutoka kwenye hizo tarehe, mfano uweke handling_date kuwa ndo mzigo umeingia na due_date ndo mzigo unatoka, bila kujua tarehe ya mzigo umeingia lini na unatoka lini huwezi kupata difference ya siku,
Pili huja specify ni database gani unatumia, ni MySQL, SQLite, oracle DB au ipi!? Hii ingesaidia watu kukusaidia kwa usahihi maana kuna vitu vidogo huwa zinatofautisha query zake kwenye kila DB , sasa kama hujaspecify ni DB gani unatumia tegemea kupata usichokihitaji ingawa itakuwa imesolve tatizo lako kwa 100% bali wewe utashindwa kuimplement kwenye tatizo lako
Tatu, hujaspecify kama kuna supportive language yoyote kwenye query zako kama vile PHP, JAVA au nyinginezo au ni query tu pasipo language yoyote
Ingekuwa ni mimi ningeweka column mbili kama nilivyosema hapo juu (handling_date na due_date) kisha query yangu ingekuwa hivi

SELECTE DATEDIFF(due_date, handling_date) as remaining_days FROM my_table WHERE id_item = 1

Hii ni kwa MySQL DB tu sijui kama DB nyingine zina function ya kupata difference ya days

Kama ningekuwa na supportive language kama PHP, ingekuwa hivi


$query = $db->query("SELECT * FROM mytable");

foreach ($query->result() as $row){
$handling_date = strtotime($row->handling_date);
$due_date = strtotime($row->due_date);
if($due_date >$handling_date){
$hours = $due_date - $handling_date;
$hours = $hours / 3600;
$time_left = round($hours / 24);
if($time_left < 1){
$time_left = "Less than 1 day ";
}else{
$time_left = $time_left."days remaining ";
}
}else{
$time_left = "Expired ";
}
echo $time_left;
}
Hizi examples zote ni assumptions tu kwa mimi understand yangu juu ya swali lako unless toa maelezo yaeleweke
Mkuu nashukuru kwa kujibu hiyo database table zake ziko hivo mimi mwenyewe nilishangaa kuona column moja ya tarehe ndio ugumu wa kutafuta difference unakuja ukiangalia kwa umakini item inawekwa mara mbili kwenye database hivo kila item ina tarehe mbili kama hapo viazi vina tarehe ya kuingia na row nyingine tarehe ya kutoka sasa je unawezaje kupata difference kwenye column moja hii database wametengeneza wahindi ni sql server.
 
pia nahitaji query tu ya back end huna haja ya kuchapa code za front end
 
pia nahitaji query tu ya back end huna haja ya kuchapa code za front end
Najua hii inaweza kua umepewa homework so ntakutafunia afu umeze mwenyewe
Unaweza kua na queries 2

Ya kwanza select handling date where handling type sawa sawa na in na item id sawa sawa na viazi

Ya pili select handling date where handling type sawa sawa na out na item id sawa sawa na viazi

Afu baada ya hapo tafuta date difference between results za sec query na za first query
 
Najua hii inaweza kua umepewa homework so ntakutafunia afu umeze mwenyewe
Unaweza kua na queries 2

Ya kwanza select handling date where handling type sawa sawa na in na item id sawa sawa na viazi

Ya pili select handling date where handling type sawa sawa na out na item id sawa sawa na viazi

Afu baada ya hapo tafuta date difference between results za sec query na za first query
sio homework mkuu ni real problem
 
Mkuu nashukuru kwa kujibu hiyo database table zake ziko hivo mimi mwenyewe nilishangaa kuona column moja ya tarehe ndio ugumu wa kutafuta difference unakuja ukiangalia kwa umakini item inawekwa mara mbili kwenye database hivo kila item ina tarehe mbili kama hapo viazi vina tarehe ya kuingia na row nyingine tarehe ya kutoka sasa je unawezaje kupata difference kwenye column moja hii database wametengeneza wahindi ni sql server.
Huyo aliyetengeneza hiyo DB sidhani kama alikuwa anajua anachokifanya, at least hata item id ingekuwa haibadiliki lakini item id inabadilika kiasi kwamba unashindwa kuelewa primary key ni nini hapo, kama primary key ingekuwa ni item id basi ningetegemea kwenye in na out zingefanana hizo item id, hapo huwezi kutengeneza query yoyote kwa njia hiyo
 
Najua hii inaweza kua umepewa homework so ntakutafunia afu umeze mwenyewe
Unaweza kua na queries 2

Ya kwanza select handling date where handling type sawa sawa na in na item id sawa sawa na viazi

Ya pili select handling date where handling type sawa sawa na out na item id sawa sawa na viazi

Afu baada ya hapo tafuta date difference between results za sec query na za first query
Hapo sasa primary key ni nini!?
 
Swali halieleweki kwa sababu kadhaa, unamaanisha nini kwa idadi ya siku? Ungetoa mfano wa hesabu zako kwa mfano hapo zimeingia 230 zikatoka 70 so zimebaki 160, so hizo siku unazotaka ni za nini exactly?
Maana kuna item zimeingia na baadhi zimetoka, na baadhi bado zipo.
Mwambie bosi akupe mfano wa hayo mahesabu hata kwenye karatasi.
 
Basi kama sio homework basi aliyetengeneza db arudi darasani
mkuu nimeikuta hiyo database ya kampuni ni mtihani kweli kweli hapo kuna field nimeziondoa ila zinazotumika ni hizo cha ajabu vendor ukimpata task hiyo anakupa majibu lakin query hakupi na unalipia kila ukimpa task.
 
Hamna primary key ndo maama nimemwambia kama sio kazi ya shule arudi darasani
mkuu primary key ni ID iko pembeni wala haitumiki kuandaa query unaweza ongeza manake ni auto increment so haina chochote cha ziada
 
Back
Top Bottom