Mam dane w tabeli orders(odnośnie zamówienia) i orders_positions(odnośnie pozycji w zamówieniu).
Potrzebuję utworzyć csv zawierający: nazwa firmy(tabela orders)- ilość zamówień(suma wystąpień pola company w tabeli orders) - kwota zamówień (suma z tabeli orders_positions w relacji orders.id = order_positions.orderId).
W jaki sposób wykorzystać funkcje count i sum?
Do tej pory tworzyłem csv z danymi w ten sposób (nie sumuje to danych tylko je wyświetla) :
SELECT o.*,, SUM(amount*price) AS `price`
FROM ".dbPrefix."orders o JOIN ".dbPrefix."order_positions p ON p.orderId = o.id GROUP BY orderId ORDER BY date DESC
Jakby trzeba było to struktura tabeli orders:
CREATE TABLE `orders` (
`id` int(11) NOT NULL,
`date` int(11) NOT NULL DEFAULT '0',
`ip` varchar(30) NOT NULL DEFAULT '0.0.0.0',
`clientId` bigint(20) DEFAULT NULL,
`clientSymbol` varchar(100) NOT NULL DEFAULT '',
`name` varchar(50) DEFAULT NULL,
`company` varchar(100) DEFAULT NULL,
`companyFull` varchar(500) DEFAULT '',
`street` varchar(50) NOT NULL,
`zipCode` varchar(10) NOT NULL,
`town` varchar(50) NOT NULL,
`country` varchar(100) NOT NULL DEFAULT 'Polska',
`phone` varchar(15) NOT NULL,
`email` varchar(100) NOT NULL,
`nip` varchar(15) DEFAULT NULL,
`notes` text,
`clientNotes` text,
`status` tinyint(1) NOT NULL DEFAULT '0',
`payment` varchar(100) NOT NULL,
`lang` char(2) NOT NULL DEFAULT 'pl',
`paid` tinyint(1) NOT NULL DEFAULT '0',
`history` text,
`session_id` varchar(100) NOT NULL,
`customOrderNumber` varchar(100) NOT NULL DEFAULT '',
`sin` varchar(200) DEFAULT '',
`ad_list` varchar(200) NOT NULL DEFAULT '',
`ad_name` varchar(50) DEFAULT '',
`ad_company` varchar(100) DEFAULT '',
`ad_street` varchar(50) DEFAULT '',
`ad_zipCode` varchar(10) DEFAULT '',
`ad_town` varchar(50) DEFAULT '',
`ad_country` varchar(200) DEFAULT '',
`ad_phone` varchar(15) DEFAULT '',
`ad_email` varchar(100) NOT NULL DEFAULT '',
`dotpay_t_id` varchar(200) DEFAULT NULL,
`dotpay_t_date` varchar(200) DEFAULT NULL,
`pwr_destination_code` varchar(200) DEFAULT NULL,
`pwr_destination_address` text,
`pwr_ean` varchar(200) DEFAULT NULL,
`currency` varchar(10) NOT NULL DEFAULT 'PLN',
`paczkomat` varchar(200) NOT NULL DEFAULT '',
`invoice` varchar(100) NOT NULL DEFAULT '',
`zk_subiekt` varchar(100) NOT NULL DEFAULT '0',
`delivery_method` varchar(100) NOT NULL DEFAULT 'kurier',
`paczkomat_labelId` varchar(100) NOT NULL DEFAULT '',
`paczkomat_zlecenieId` varchar(100) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Orders positions:
CREATE TABLE `order_positions` (
`id` int(11) NOT NULL,
`orderId` int(11) NOT NULL,
`name` varchar(500) NOT NULL,
`productId` int(11) DEFAULT NULL,
`amount` int(11) NOT NULL,
`unit` varchar(20) NOT NULL DEFAULT 'szt.',
`price` decimal(10,2) NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '0',
`currency` varchar(10) NOT NULL DEFAULT 'PLN',
`symbol` varchar(100) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;