0

空室状況を表示するためにクルーズのリストを出力していますが、各キャビンのステータスで各クルーズを数回取得しています。クルーズのみが必要です。すべてのキャビンが売り切れの場合、出力されたステータスは C、それ以外の場合は A になります。

ここに私の質問があります

<?php
$maketemp = "CREATE TEMPORARY TABLE temp (
                 `sailingId` varchar(5) NOT NULL,
                 marketCurrency varchar(3),
                 `Status` varchar(1)
             )";

mysql_query( $maketemp, $connection ) or
    die ( "Sql error : " . mysql_error ( ) );

$inserttemp = "INSERT INTO
                   temp
               SELECT
                   code AS sailingId,
                   'USD' AS marketCurrency,
                   CASE
                       WHEN fares_usa.status = 'sold_out' THEN 'C'
                   END AS Status
               FROM
                   cruises,
                   fares_usa
               WHERE
                   live ='Y' AND
                   cruises.id = fares_usa.cruise_id";

mysql_query( $inserttemp, $connection ) or
    die ( "Sql error : " . mysql_error ( ) );

$select = "SELECT sailingId, marketCurrency, Status FROM temp";

$export = mysql_query ( $select, $connection ) or
    die ( "Sql error : " . mysql_error( ) );

$fields = mysql_num_fields ( $export );
4

1 に答える 1

0

というわけで、こうしました・・・。

 $inserttemp = "INSERT INTO temp SELECT code AS sailingId, 'USD' AS marketCurrency, CASE WHEN GROUP_CONCAT(DISTINCT status) = 'Sold Out' THEN 'C' ELSE 'A' END AS Status FROM cruises, fares_usa WHERE live ='Y' AND cruises.id = fares_usa.cruise_id GROUP BY cruises.code";

結果 !

于 2012-04-30T08:03:02.197 に答える