2016-08-03 56 views
0

Ich habe eine Tabelle namens Rechnungen in MySQL.Als leer für die Spalte "Duplicates in Particular" in MYSQL anzeigen

Bill   item   totalprice 

BILL_1  Fossil Watch 9000 
BILL_1  Fastrack  9000 
BILL_1  Fastrack  9000 
BILL_2  Woodlands  7000 
BILL_2  Woodlands  7000 
BILL_3  Denim Shirt 9000 
BILL_3  Levis Jean 9000 

Die SELECT-Anweisung sollte wie zurückkehren unter

Bill   item   totalprice 

BILL_1  Fossil Watch 9000 
BILL_1  Fastrack  - 
BILL_1  Fastrack  - 
BILL_2  Woodlands  7000 
BILL_2  Woodlands  - 
BILL_3  Denim Shirt 9000 
BILL_3  Levis Jean - 
The totalprice column is total bill amount. 
+0

ist 'Bill' eine Primärschlüsselspalte? – Grace

+0

Gibt es eine Art ID-Spalte oder eine andere Spalte, die für die Bestellung der Transaktionen verwendet werden könnte? –

+0

Hallo @Grace es ist keine primäre Spalte –

Antwort

1

Nicht sicher, ob dies ist, was Sie wollen oder nicht genau, aber versuchen Sie es:

select t.Bill, t.item, t.totalPrice 
from (
    select 
     b.Bill, b.item 
     ,if(@price <> b.totalPrice or @price is null, b.totalPrice, '-') as totalPrice 
     ,@price := b.totalPrice as dummy 
    from (select * from Bills order by totalPrice desc, item desc) b 
    cross join (select @price := null) t 
) t 

Demo Here

Edited:

select t.Bill, t.item, t.totalPrice 
from (
    select 
     b.Bill, b.item 
     ,if(@price <> b.totalPrice or @price is null, b.totalPrice, '-') as totalPrice 
     ,@price := b.totalPrice as dummy 
    from (select * from Bills order by Bill, totalPrice desc) b 
    cross join (select @price := null) t 
) t 

New Demo

+0

Ich habe meine Frage jetzt bearbeitet, das Ergebnis sollte der Spalte Rechnung entsprechen –

+0

@VikiCullen Check bearbeitet bitte. – Blank