2016-04-08 21 views
0

Zaten ne ihtiyacım başka bir sütun eklemek ve aşağıdaki gibi sıra numarasına bir tür göstermektir buSipariş satır ve gösterge sipariş numarası

+-----------+------------+---------------+--------+ 
| DetailsNo | SaleDate | Country  | Value | 
+-----------+------------+---------------+--------+ 
|  277 | 2012-02-10 | PHI   |  42 | 
|  279 | 2012-02-10 | PHI   |  10 | 
|  280 | 2012-02-10 | USA   |  30 | 
|  281 | 2012-02-10 | USA   |  25 | 
|  282 | 2012-02-10 | FRA   |  65 | 
|  283 | 2012-02-10 | FRA   |  36 | 
|  284 | 2012-02-10 | GER   |  47 | 
+-----------+------------+---------------+--------+ 

gibi sonuçlanan bir sorgu var:

+-----------+------------+---------------+--------+--------+ 
| DetailsNo | SaleDate | Country  | Value | Order | 
+-----------+------------+---------------+--------+--------+ 
|  277 | 2012-02-10 | PHI   |  42 |  1 | 
|  279 | 2012-02-10 | PHI   |  10 |  2 | 
|  280 | 2012-02-10 | USA   |  30 |  1 | 
|  281 | 2012-02-10 | USA   |  25 |  2 | 
|  282 | 2012-02-10 | FRA   |  65 |  1 | 
|  283 | 2012-02-10 | FRA   |  36 |  2 | 
|  284 | 2012-02-10 | GER   |  47 |  1 | 
+-----------+------------+---------------+--------+--------+ 

Bu mümkün mü?

+0

varolan kodu nedir? Ne denedin ve problemler nelerdi? –

+0

Pratikte, bu değeri saklamak isteyeceğinizden büyük olasılıkla yoktur. – Strawberry

cevap

0

Bunun için değişkenleri kullanabilirsiniz:

SELECT DetailsNo, SaleDate, Country, Value, 
     @rn := IF(@c = Country, @rn + 1, 
       IF(@c := Country, 1, 1)) AS 'Order' 
FROM mytable 
CROSS JOIN (SELECT @rn := 0, @c := '') AS vars 
ORDER BY Country, DetailsNo 

Demo here

+0

KOLON 'SİPARİŞİNİ ARAYIN. – Strawberry

+0

@Strawberry, sorun ne olursa olsun bağırmak için bir neden yoktur. –

+0

Bağışlamıyorum. Her kelimeyi vurguluyorum ;-) – Strawberry