|
分類:[VB.NET/VB2005 以降]
SQLのSELECT文にSELECT文を入れる場合で分からないところがあるのですが よろしくお願いいたします。
例えば、売上データに条件に合うデータが何件あるかを1つのSQL文にすると 下記(例1)のようにすればうまくできたのですが 同商品コードが3件あったとして、3件とも同じ単価の場合は「○」を 違う単価が含まれる場合は「×」としたい場合がうまくいきません。(例2)
私の考えとしては、商品コードと単価でGROUP BY して、 その件数が1件の場合は「○」、そうでない場合は「×」とすればいいかと思ったのですが エラーでうまくいきませんでしが。 そもそもの考え方がまずいのでしょうか?
(例1) sql1 = "SELECT COUNT(日付) " sql1 &= "FROM 売上データ " sql1 &= "WHERE 日付 = '2017/10/30' "
sql = "SELECT " sql &= "日付, 商品コード, 数量, 単価, 金額, " sql &= "(" & sql1 & ") as 件数 " sql &= "FROM 売上データ " sql &= "WHERE 日付 = '2017/10/30' "
(例2) sql1 = "SELECT 商品コード, 単価 " sql1 &= "FROM 売上データ " sql1 &= "WHERE 日付 = '2017/10/30' " sql1 &= "AND 商品コード = 'A0001' " sql1 &= "GROUP BY 商品コード, 単価"
sql = "SELECT " sql &= "日付, 商品コード, 数量, 単価, 金額, " sql &= "CASE (" & sql1 & ") WHEN 1 THEN '○' ELSE '×' END as 単価チェック " sql &= "FROM 売上データ " sql &= "WHERE 日付 = '2017/10/30' " sql &= "AND 商品コード = 'A0001' "
どこをどうすればうまくいくのでしょうか? どうぞよろしくお願いいたします。
|