potrebna mi je pomoc oko jednog MySQL upita:
Imam 3 proste tabele
Prva tablela "stavke" ima polja:
Id INT AUTOICREMENT
datum DATE
Druge 2 tabele "ulazi" i "izlazi" su iste:
Id INT AUTOICREMENT
stavka_id INT
iznos DECIMAL(18, 2)
Za svaki record unet u tabelu "stavke" ja mogu da unesem po vise stavki u "ulaze" i/ili "izlaze" i da ih povezem pomocu stavka_id polja sa stavke.id. Dakle oko unosenja podataka nema problema, ali:
Kada hocu da prikazem:
id, datum, zbir ulaza, zbir izlaza imam cudnih rezultata, suma u koloni za zbir ulaza se duplira !?
Code:
SELECT
stavke.id, stavke.datum, SUM(ulazi.iznos), SUM(izlazi.iznos)
FROM stavke, ulazi, izlazi
WHERE stavke.id = ulazi.stavka_id AND stavke.id = izlazi.stavka_id
GROUP BY (stavke.id)
SELECT
stavke.id, stavke.datum, SUM(ulazi.iznos), SUM(izlazi.iznos)
FROM stavke, ulazi, izlazi
WHERE stavke.id = ulazi.stavka_id AND stavke.id = izlazi.stavka_id
GROUP BY (stavke.id)
Da li neko moze da mi kaze gde gresim i kako to da ispravim.
Ispod posta sam ubacio mysqldump izvestaj ako neko zeli da proba da izvrsi.
Hvala najlepse na pomoci.
Bojan
Code:
# MySQL-Front Dump 2.5
#
# Host: localhost Database: store
# --------------------------------------------------------
# Server version 4.1.0-alpha-max-nt
USE store;
#
# Table structure for table 'izlazi'
#
DROP TABLE IF EXISTS `izlazi`;
CREATE TABLE `izlazi` (
`id` int(10) unsigned NOT NULL auto_increment,
`stavka_id` int(11) default NULL,
`iznos` decimal(18,2) default NULL,
`neplaceno` decimal(18,2) default NULL,
`komentar` char(64) default NULL,
UNIQUE KEY `id` (`id`),
KEY `id_2` (`id`)
) ENGINE=MyISAM CHARSET=latin1;
#
# Dumping data for table 'izlazi'
#
INSERT INTO `izlazi` (`id`, `stavka_id`, `iznos`, `neplaceno`, `komentar`) VALUES("1", "1", "2.00", "4.00", "");
INSERT INTO `izlazi` (`id`, `stavka_id`, `iznos`, `neplaceno`, `komentar`) VALUES("2", "1", "3.00", "4.00", "");
INSERT INTO `izlazi` (`id`, `stavka_id`, `iznos`, `neplaceno`, `komentar`) VALUES("3", "2", NULL, NULL, "");
INSERT INTO `izlazi` (`id`, `stavka_id`, `iznos`, `neplaceno`, `komentar`) VALUES("4", "2", NULL, NULL, "");
#
# Table structure for table 'stavke'
#
DROP TABLE IF EXISTS `stavke`;
CREATE TABLE `stavke` (
`id` int(10) unsigned NOT NULL auto_increment,
`datum` date default NULL,
UNIQUE KEY `id` (`id`),
KEY `id_2` (`id`)
) ENGINE=MyISAM CHARSET=latin1;
#
# Dumping data for table 'stavke'
#
INSERT INTO `stavke` (`id`, `datum`) VALUES("1", "2003-09-18");
INSERT INTO `stavke` (`id`, `datum`) VALUES("2", "2003-09-18");
#
# Table structure for table 'ulazi'
#
DROP TABLE IF EXISTS `ulazi`;
CREATE TABLE `ulazi` (
`id` int(10) unsigned NOT NULL auto_increment,
`stavka_id` int(11) default NULL,
`iznos` decimal(18,2) default NULL,
`neplaceno` decimal(18,2) default NULL,
`komentar` char(64) default NULL,
UNIQUE KEY `id` (`id`),
KEY `id_2` (`id`)
) ENGINE=MyISAM CHARSET=latin1;
#
# Dumping data for table 'ulazi'
#
INSERT INTO `ulazi` (`id`, `stavka_id`, `iznos`, `neplaceno`, `komentar`) VALUES("1", "1", "2.00", "0.00", NULL);
INSERT INTO `ulazi` (`id`, `stavka_id`, `iznos`, `neplaceno`, `komentar`) VALUES("2", "2", "5.00", "0.00", "");
# MySQL-Front Dump 2.5
#
# Host: localhost Database: store
# --------------------------------------------------------
# Server version 4.1.0-alpha-max-nt
USE store;
#
# Table structure for table 'izlazi'
#
DROP TABLE IF EXISTS `izlazi`;
CREATE TABLE `izlazi` (
`id` int(10) unsigned NOT NULL auto_increment,
`stavka_id` int(11) default NULL,
`iznos` decimal(18,2) default NULL,
`neplaceno` decimal(18,2) default NULL,
`komentar` char(64) default NULL,
UNIQUE KEY `id` (`id`),
KEY `id_2` (`id`)
) ENGINE=MyISAM CHARSET=latin1;
#
# Dumping data for table 'izlazi'
#
INSERT INTO `izlazi` (`id`, `stavka_id`, `iznos`, `neplaceno`, `komentar`) VALUES("1", "1", "2.00", "4.00", "");
INSERT INTO `izlazi` (`id`, `stavka_id`, `iznos`, `neplaceno`, `komentar`) VALUES("2", "1", "3.00", "4.00", "");
INSERT INTO `izlazi` (`id`, `stavka_id`, `iznos`, `neplaceno`, `komentar`) VALUES("3", "2", NULL, NULL, "");
INSERT INTO `izlazi` (`id`, `stavka_id`, `iznos`, `neplaceno`, `komentar`) VALUES("4", "2", NULL, NULL, "");
#
# Table structure for table 'stavke'
#
DROP TABLE IF EXISTS `stavke`;
CREATE TABLE `stavke` (
`id` int(10) unsigned NOT NULL auto_increment,
`datum` date default NULL,
UNIQUE KEY `id` (`id`),
KEY `id_2` (`id`)
) ENGINE=MyISAM CHARSET=latin1;
#
# Dumping data for table 'stavke'
#
INSERT INTO `stavke` (`id`, `datum`) VALUES("1", "2003-09-18");
INSERT INTO `stavke` (`id`, `datum`) VALUES("2", "2003-09-18");
#
# Table structure for table 'ulazi'
#
DROP TABLE IF EXISTS `ulazi`;
CREATE TABLE `ulazi` (
`id` int(10) unsigned NOT NULL auto_increment,
`stavka_id` int(11) default NULL,
`iznos` decimal(18,2) default NULL,
`neplaceno` decimal(18,2) default NULL,
`komentar` char(64) default NULL,
UNIQUE KEY `id` (`id`),
KEY `id_2` (`id`)
) ENGINE=MyISAM CHARSET=latin1;
#
# Dumping data for table 'ulazi'
#
INSERT INTO `ulazi` (`id`, `stavka_id`, `iznos`, `neplaceno`, `komentar`) VALUES("1", "1", "2.00", "0.00", NULL);
INSERT INTO `ulazi` (`id`, `stavka_id`, `iznos`, `neplaceno`, `komentar`) VALUES("2", "2", "5.00", "0.00", "");