2013-09-25 21 views
-1

當我運行一個語句來查看特定日期我得到以下結果多少行 - 3行 enter image description here計數視場中的數據庫

但是因爲表9中有2個不同的數字在五&六,然後在八&九我真正需要的結果回來爲4行這樣

enter image description here

這是代碼即時通訊使用

SELECT BookingDate, Table, Five, Six, Seven, Eight, Nine, TenID 
FROM **** WHERE BookingDate = '2013-09-24' 

任何想法?

+0

是的,這是我想要做的,但對於其他日期,它可能是不同的時間,可能會不同,即六和七可能是3000和九和十可能是3001 – Pat74

+0

你可以更明確這一點,即給我們明確定義的情況下,你想這樣做? – Dukeling

回答

0

如果你想複製一個行(即有輸入只有一個這樣的行),其中FiveSixNULLEightNineNULL,這應該這樣做:

SELECT * 
FROM 
(
    /* Select everything you want, one of each */ 
    SELECT BookingDate, `Table`, Five, Six, Seven, Eight, Nine, TenID 
    FROM ... 
    WHERE BookingDate = '2013-09-24' 

    UNION ALL 

    /* Select all rows that should be duplicated */ 
    SELECT BookingDate, `Table`, Five, Six, Seven, Eight, Nine, TenID 
    FROM ... 
    WHERE BookingDate = '2013-09-24' 
    AND (Five IS NOT NULL OR Six IS NOT NULL) 
    AND (Eight IS NOT NULL OR Nine IS NOT NULL) 
) a 
ORDER BY `Table` /* or whatever you want to order by */ 

Table是一個保留字,這就是爲什麼它需要在`的(我個人認爲,你應該避免使用保留字作爲列/表名)。

如果這不完全是你想要的,我希望它足以得到你想要的。