C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 160 を表示中)
■92559 / )  Re[5]: SQLについて
□投稿者/ 大谷刑部 (34回)-(2019/10/04(Fri) 16:06:55)
No92553 (初心者 さん) に返信
> 2019/10/04(Fri) 15:50:03 編集(投稿者)
>
> ■No92552 (魔界の仮面弁士 さん) に返信
>
>>どのような結果になることを期待して、具体的にどういう SQL を
>>記述したのかが分からないと、間違っている箇所を指摘できません。(^^;
>
> すみません、言葉足らずでした。
>
> 例えばこんな感じです。(実装したいこと)
> ID1  ID2   total apple_name banana_name
> ---------------------------------------------------
> 1     1    1     a1 b1
> 1    2    1    a1 b1
> 1    3    1     a1 b1
> ----------------------------------------------------
> 1    null   3    null null →小計
> ---------------------------------------------------
> 2  4 4 a2 b2
> 2  5 4 a2 b2
> ---------------------------------------------------
> 2  null 8 null null →小計
> ---------------------------------------------------
> null  null 11 null null →総計
> ---------------------------------------------------
>
> 実際に追加してみたSQL文はこうです。
> -------------------------------------------------
> SELECT ID1, ID2, total, (CASE
> WHEN ID1 IS NULL AND ID2 IS NULL THEN '総計'→NULL
> WHEN ID1 IS NULL OR ID2 IS NULL THEN '小計'→NULL
> ELSE apple_name , banana_name END) AS apple_name FROM (
> ↑
>           追加した部分
>
> このようにELSEの後に追加した結果エラーがでました。
> 増やすことはできないのでしょうか?

ということであれば同じcase句を2項目分書くか(若干冗長ですが)
apple_nameとbanana_name文字連結して一つの項目として出す(副問合わせの時点でやらないと厳しいかもしれませんが)
とかですかね。
見づらくならないように間にスペース1文字とか入れた方がいいでしょうけど。
少なくともカンマは項目区切りの意味の予約語だから項目内の区切りには使えないでしょ。
エスケープしない限り。
返信 編集キー/


管理者用

- Child Tree -