2012-03-24 4 views
1

У меня есть компонент DBGrid BDS 2006 в моем приложении. Снимок сетки выглядит следующим образом.Объединить значения столбца DBGrid

enter image description here

компонент DBGrid подключается к базе данных MySQL, который получает заселенной во время выполнения. Запрос я использовал это:

dm.MyQpayment.SQL.Clear; 
dm.MyQpayment.SQL.Add('select sdate,stime,pcid,billno,c.customer_name,s.customerid,s.total,s.amount_paid,s.balance'); 
dm.MyQpayment.SQL.Add(',s.payment_type,s.payment_status,s.delivery from sales_order s left join customer_details c on s.customerid=c.customerid where s.payment_status=''complete'' and s.sdate>="'+startdate+'" and s.sdate<="'+enddate+'" '); 
dm.MyQpayment.Active :=true; 

Я хочу Dispaly BILL NO и Machine id как BILL NO и значения должны быть 2_1, если Machine id является 2 и BILL NO равен 1. Любая идея, как сделать это?

EDIT1

select CAST(pcid AS CHAR) + "_" + CAST(billno AS CHAR) AS MachineAndBillNo 
FROM tt.payment_details ; 

этот запрос дает мне результат следующим образом

enter image description here

, где он дает machineandbillno = billno + PCID

+0

Было бы очень полезно задавать вопросы о ваших данных, если бы вы предоставили типы данных столбцов. Нигде выше вашего редактирования вы не упоминаете ничего о том, что один из столбцов «double». Каковы типы данных столбцов 'pcid' и' billno'? –

+0

Тип данных pcid и billno - INTEGER. –

ответ

1

Я не знаю конкретный синтаксис MySQL требования, но вы должны объединить эти два поля вместе:

SELECT 
    sdate, 
    stime, 
    CONCAT(CAST(pcid AS CHAR), '_', CAST(billno AS CHAR)) AS MachineAndBillNo, 
    c.customer_name, 
    ... 
+0

Я отредактировал мой вопрос. –

+0

Это работает отлично. Спасибо за ответ. –