İyi Günler.Tricky Query: Tahmin Tarihi
benim SQL sorgusunda bu sorundan bloke ediyorum: Aşağıdaki tablo göz önüne alındığında
:
CREATE TABLE `Forecasted_Sales_tcl` ( `DEALER_id` varchar(15) NOT NULL, `SALES_period` date NOT NULL, `TYPE` int(2) NOT NULL, `UNIT_SALES` int(6) DEFAULT NULL, `HEAD_OFFICE_CODE` varchar(15) DEFAULT NULL PRIMARY KEY (`DEALER_CODE`,`SALES_MONTH`,`TYPE`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
http://sqlfiddle.com/#!2/b780c
Ben önümüzdeki aylarda olası satış masraf oluşturmaya gerek. Örneğin, bir mağazada bir ay için (SALES_period) "Haziran 2012" için bir giden satış (unit_sales) çizdim. Ağustos 2012'de B, Ekim 2012'de B tipi, Ekim 2012'de B tipi, A tipi bazı hizmet ücretlerini bekliyorum. Ayrıca farklı mağazalarda bazı farklı aylarda satışlarım var.
Böyle bir rapor şey üretmek çalışıyorum: (4 Ay Önce) Y unit_sales toplamıdır
Period |charge A | charge B |charge C | store_id 2012-Jan | X | Y | Z | (id) 2012-Feb | : | : | : : 2012-Mar | : | : | : : 2012-Apr | : | : | : : 2012-May | : | : | : : 2012-Jun | : | : | : : 2012-Jul | : | : | : : 2012-Aug | : | : | : : 2012-Sep | : | : | : : 2012-Oct | : | : | : : 2012-Nov | : | : | : : 2012-Dec | : | : | : :
X (2 Ay Önce) unit_sales toplamıdır mağaza (id) için için Rapor oluştur: Nereden : mağaza (id) Z mağaza (id) için (6 ay önce) unit_sales
sql keman söyledi verileri göz önüne alındığında ve bazı parametreler toplamıdır 2012- 06 için: 2 satış (2012-02)
Period | Dealer Id | CHARGE A | CHARGE B | CHARGE C | 2012-06 | 0003 | 0 | 0 | 0 | 2012-07 | 0003 | 0 | 0 | 0 | 2012-08 | 0003 | 1 | 0 | 0 | 2012-09 | 0003 | 0 | 0 | 0 | 2012-10 | 0003 | 0 | 1 | 0 | 2012-11 | 0003 | 0 | 0 | 0 | 2012-12 | 0003 | 0 | 0 | 1 | 2013-01 | 0003 | 0 | 0 | 0 | 2013-02 | 0003 | 0 | 0 | 0 | 2013-03 | 0003 | 0 | 0 | 0 | 2013-04 | 0003 | 0 | 0 | 0 | 2013-05 | 0003 | 0 | 0 | 0 | 2013-06 | 0003 | 0 | 0 | 0 | 2013-07 | 0003 | 0 | 0 | 0 |Usta Raporu için ise bu 10 günü 2013-07
Period | Dealer Id | CHARGE X | CHARGE B | CHARGE C | 2012-06 | 0001 | 0 | 0 | 0 | 2012-07 | 0001 | 0 | 0 | 0 | 2012-08 | 0001 | 100 | 0 | 0 | 2012-09 | 0001 | 0 | 0 | 0 | 2012-10 | 0001 | 0 | 100 | 0 | 2012-11 | 0001 | 0 | 0 | 0 | 2012-12 | 0001 | 0 | 0 | 100 | 2013-01 | 0001 | 0 | 0 | 0 | 2013-02 | 0001 | 0 | 0 | 0 | 2013-03 | 0001 | 0 | 0 | 0 | 2013-04 | 0001 | 0 | 0 | 0 | 2013-05 | 0001 | 0 | 0 | 0 | 2013-06 | 0001 | 0 | 0 | 0 | 2013-07 | 0001 | 0 | 0 | 0 | Period | Dealer Id | CHARGE A | CHARGE B | CHARGE C | 2012-06 | 0002 | 0 | 10 | 2 | 2012-07 | 0002 | 0 | 0 | 0 | 2012-08 | 0002 | 10 | 0 | 0 | 2012-09 | 0002 | 18 | 0 | 0 | 2012-10 | 0002 | 5 | 10 | 0 | 2012-11 | 0002 | 0 | 18 | 0 | 2012-12 | 0002 | 0 | 5 | 10 | 2013-01 | 0002 | 0 | 0 | 18 | 2013-02 | 0002 | 0 | 0 | 5 | 2013-03 | 0002 | 0 | 0 | 0 | 2013-04 | 0002 | 0 | 0 | 0 | 2013-05 | 0002 | 0 | 0 | 0 | 2013-06 | 0002 | 0 | 0 | 0 | 2013-07 | 0002 | 0 | 0 | 0 |
Satış (2012-04) içindir
| 2012-06 | 2012-07 | 2012-08 | 2012-09 | 2012-10 | 2012-11 | Dealer ID | CHARGE A | CHARGE B | CHARGE C | CHARGE A | CHARGE B | CHARGE C | CHARGE A | CHARGE B | CHARGE C | CHARGE A | CHARGE B | CHARGE C | CHARGE A | CHARGE B | CHARGE C | CHARGE A | CHARGE B | CHARGE C | 001 | 0 | 0 | 0 | 0 | 0 | 0 | 100 | 0 | 0 | 18 | 0 | 0 | 0 | 100 | 0 | 0 | 18 | 0 | 002 | 0 | 10 | 2 | 0 | 0 | 0 | 10 | 0 | 0 | 0 | 0 | 0 | 0 | 10 | 0 | 0 | 0 | 0 | 003 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |Yardımlarınız için teşekkürler.
Hum ... oldukça zor ve ben doğru soruyu anlamaya çalışan bir baş ağrısı biraz yaşıyorum: bellek, Jasper Reports, BIRT ...
Eh itibaren SQL tadını çıkarın. Ancak ilginç bir şekilde görünüyor, [sqlfiddle] oluşturabilir misiniz? (Http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CFAQFjAA&url=http%3A%2F% Bazı verilerle 2Fsqlfiddle.com% 2F & ei = 5JvcT5bCIbCM0wWxg8jNCg & usg = AFQjCNFm12TxaUOyr1fCpsH3njbgA9q20A) ve beklenen bir sonuç ekleyin? –